C++判断一个字符串是否是回文,我编写的程序如何修改?

C++判断一个字符串是否是回文,我已经编出了程序但不是理想中的结果,怎么修改最后的条件(我知道编错了但是不会修改)才能得到仅输出一句话判断?新手小白,谢谢各位大佬回答!我使用的是VS2017

1.你的第一个for循环是判断字符长度的,有专门判断字符长度的函数,这个倒不是问题。
2.你的算法有问题,每比较一次就显示一次消息。
3.应该先根据字符串的长度来确定中间位置,也就是第二个for循环的次数;然后设置一个是回文的标记;在每次循环里比较首尾字符是否一样,如果一样将则继续下一位,否则将回文标记设置为否并退出循环;在循环结束后判断这个标记,来打印是不是回文。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-04
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char str[200];
int n;
int flag=0;//标记变量初值为0
cin>>str;
n=strlen(str);//调用库函数获取字符串长度
for(int i=0;i<n;i++){
if(str[i]!=str[n-i-1]){//前后对应位置字符不同
cout<<"不是回文字符串"<<endl;
flag=1;//标记一下
break;//提前结束
}
}
if(flag==0){//未被标记,是回文字符串
cout<<"是回文字符串"<<endl;
}
return 0;
}本回答被提问者采纳
第2个回答  2021-11-03
首先,理解什么是回文字符串,简单的一句话概括就是关于中心左右对称的字符串。例如:ABCBA或者AACCAA是回文字符串
相似回答