c++ 判断一个字符串是否是回文,程序怎么写?
1个回答
展开全部
判断回文字符串的办法就是成对比较,就是把字符串的第一个字符和倒数第一个字符比较,把第二个字符和倒数第二个比较……,以此类推。所以要写一个判断字符串是否回文的函数要先算出字符串S的字符数n,然后把S[0]和S[n-1-0]比较,S[1]和S[n-1-1]比较,S[2]和S[n-1-2]比较,……,直到把S[n/2]和S[n-1-n/2]比较,只要发现一个不同就可以判断不是回文,否则就是回文。具体判断步骤如下。
1、进入VC++,新建C++文件。
2、编写程序:
#include <iostream> //控制台操作头文件#include <string.h> //字符串操作头文件 bool Hw(char s[]) //检测是否回文的函数{int i,n=strlen(s); //循环变量和字符串长度 if(n<=1) return false; //空串或只有一个字符不算回文串 for(i=0;i<n/2;i++) //用循环逐个检测 if(s[i]!=s[n-1-i]) //如果对称位置的字符不一样 return false; //结束函数并返回假 return true;} //检测完还没发现不同就返回真 int main() //主函数{int i; //循环变量 char S[255]; //用于存放字符串的数组 for(;;) //弄一个无穷循环 {printf("请输入字符串(END结束):"); //显示提示信息 scanf("%s",S); //从键盘输入字符串到S中 if(strcmp(S,"END")==0) break; //如果输入END退出循环 if(Hw(S)) //用自定义函数判断是否回文 printf("这是回文字符串\n\n"); //显示判断结果 else printf("这不是回文字符串\n\n");} printf("\n"); //输完所有数再空一行 system("PAUSE"); //暂停屏幕以便查看显示结果 return 0;} //结束程序3、检查没有错误进行编辑连接运行,运行结果如下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询