c++ 判断一个字符串是否是回文,程序怎么写?

 我来答
gangtie77
高粉答主

推荐于2019-11-16 · 说的都是干货,快来关注
知道大有可为答主
回答量:139
采纳率:100%
帮助的人:2.6万
展开全部

判断回文字符串的办法就是成对比较,就是把字符串的第一个字符和倒数第一个字符比较,把第二个字符和倒数第二个比较……,以此类推。所以要写一个判断字符串是否回文的函数要先算出字符串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、检查没有错误进行编辑连接运行,运行结果如下。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式