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

如题所述

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

温馨提示:答案为网友推荐,仅供参考
相似回答