c语言判断回文串函数 c语言如何判断回文串
用C语言如何编写判断一个字符序列是否是回文的函数?
//首先我认为回文不一定是奇数个;也有可能是偶数个;只要这个字符串
成都创新互联公司主要从事成都网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务定远,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
//正读跟反读都一样
那它就是回文
所以不应该把字符串的个数当成是判断回文串的
//一个条件。
#include
stdio.h
#include
string.h
#include
conio.h
bool
huiWen(const
char
*p);
int
main()
{
char
test[225];
gets(test);
if(huiWen(test))
{
printf("是回文!\n");
}
else
{
printf("不是回文!\n");
}
getch();
return
0;
}
bool
huiWen(const
char
*p)
{
int
i=0,n=strlen(p);
while(p[i]==p[n-i-1]
in-i-1)
//只要相等且还未相遇则继续循环
{
i++;
}
return
((in-i-1)?
false:true);
//若in-i-1表示中途遇到不相等的字符而退出循环
}
C语言 判断回文字符串
#include stdio.h
/*fun()函数:传入一个字符数组,如果是回文序列返回1,不是就返回0*/
int fun(char a[])
{
int i,j,n=0;
while(a[n]!='\0') n++; /*计算传入字符串(数组)长度*/
n--; /*跳出while循环时 a[n]='\0',故n--*/
for(i=0,j=n;ij;i++,j--)
if(a[i]!=a[j]) break;
if(i=j) return 1;
return 0;
}
int main()
{
char str[20];
puts("输入一个字符串:\n");
gets(str);
if(fun(str)) printf("%s 是回文序列\n",str);
else printf("%s 不是回文序列\n",str);
return 0;
}
c语言回文串判断
我看了下逻辑不对,还有些语法错误,我修改了下可以运行,有问题追问我。
#includestdio.h
#includestring.h
int
main()
{
int
n=0,j,t=0,s;
char
a[100];
while(scanf("%d",s)!=EOF)
{
scanf("%s",a)
n=strlen(a);
for(t=0,j=0;jn/2;j++)
{
if(a[j]==a[n-1-j])
{
t++;
}
else
{
break;
}
}
if(t==(n/2
-
1)||t==n/2)
{
printf("Yes\n");
}
else
{
printf("no\n");
}
}
return
0;
}
C语言判断一串字符是否为回文串
需要比较整个字符串然后得到结论输出yes而不是只判断了一个字符相等就输出
#includestdio.h
#includestring.h
const int maxn=256;
int main(){ int i; char str[maxn]; int len,b;
scanf("%s",str); len=strlen(str); //输入完了字符串再计算长度,不能在输入之前算
for(i=0,b=1;i=len/2;i++)
if(str[i]!=str[len-i-1]){ b=0; break; } //如果发现不相等则判定不是回文
if ( b!=0 ) printf("yes"); else printf("no"); //等循环完毕再得出结论
return 0; //main前面有int修饰,因此必须返回整型值
}
本文名称:c语言判断回文串函数 c语言如何判断回文串
转载源于:http://scjbc.cn/article/doshces.html