
正文
c语言判断回文字符串函数 c语言判断回文字符串的两种简单方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何判断一个字符串是否是回文
首先,理解什么是回文字符串,简单的一句话概括就是关于中心左右对称的字符串。例如:ABCBA或者AACCAA是回文字符串;ABCCA或者AABBCC不是回文字符串。
判断方法就是,依次看两端的字符是否相等。例如:ABCBA,第一个字符与最后一个字符相等,第二个字符与倒数第二个字符相等,第三个字符是中心字符,无需判断。如果是AACCAA就要判断。所以上面的字符串是回文字符串。
以下是C语言实现判断回文字符串的代码。
#includestdio.h
#includestring.h
int main(void)
{
char s[30];
int b=0; //1表示不是回文字符串
puts("请输入一个字符串:");
scanf("%s",s);
for(int i=0;istrlen(s)/2;i++)
if(s[i]!=s[strlen(s)-i-1])
{
b++;
break;
}
if(b)
printf("这不是回文字符串。");
else
printf("这是回文字符串。");
return 0;
}
相关问答
Q1: 用C语言如何编写判断一个字符序列是否是回文的函数?
//首先我认为回文不一定是奇数个;也有可能是偶数个;只要这个字符串
//正读跟反读都一样 那它就是回文 所以不应该把字符串的个数当成是判断回文串的
//一个条件。
#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表示中途遇到不相等的字符而退出循环
}
Q2: c语言编程题 输入一字符串,判断该字符串是否为回文。
#include stdio.h
#includestdlib.h
int main()
{
char a[100];
int i=0,j=0;
printf("请输入字符串:\n");
gets(a);
while(a[i]!='\0')
i++;
i--;
for(;j=i;i--,j++)
{
if(a[i]!=a[j])
{
break;
}
}
if(j=i)
{
printf("不是回文串\n",a);
}
else
{
printf("是回文串\n",a);
}
system("pause");
return 0;
}
运行效果:
扩展资料:
return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。
return语句用来结束循环,或返回一个函数的值。
1、return 0,说明程序正常退出,返回到主程序继续往下执行。
2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大家习惯于使用return(0)退出子程序而已。
Q3: C语言判断一串字符是否为回文串
需要比较整个字符串然后得到结论输出yes而不是只判断c语言判断回文字符串函数了一个字符相等就输出
#includestdio.h
#includestring.h
const int maxn=256;
int main(){ int i; char str[maxn]; int len,b;
scanf("%s",str); len=strlen(str); //输入完c语言判断回文字符串函数了字符串再计算长度c语言判断回文字符串函数,不能在输入之前算
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修饰,因此必须返回整型值
}
Q4: 数据结构C语言 判断指定字符串是否回文怎么写 ?
提示:实现本程序需要设计两个函数。①主函数main,数据的输入和输出在该函数中完成。②自定义函数func,判断串s是否为回文。采用的方法是:用flag表示是否为回文。用i从左向右扫描字符串s,用j从右向左扫描字符串s,若s[i]与s[j]不相等,则flag=0(表示不是回文)并退出循环,否则,继续比较直到ij不成立。/*判断指定字符串是否回文*/#include
stdio.hint
func(char
*str){int
i,j,t,flag;
t=strlen(str);
for(i=0,j=t-1;i=t/2;i++,j--)
{if(str[i]==str[j])
continue;
else
{
flag=0;
break;
}
}
if(i=t/2)
flag=1;
return
flag;}void
main(){/********************blank********************/____________________;/*填空位置1:变量定义*/____________________;/*填空位置2:从键盘输入需要判定的字符串*/____________________;/*填空位置3:调用func函数*/____________________;/*填空位置4:根据返回值flag的值,输出判定结果*/}该算法的时间复杂度是:____________________。
Q5: 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语言判断回文字符串函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言判断回文字符串的两种简单方法、c语言判断回文字符串函数的信息别忘了在本站进行查找喔。







