当我们学习C++时经常会遇到让我们判断一个字符串是不是回文字符串的问题,下面我将给大家展示如何判断。
回文字符串的意思是从前往后读和从后往前读结果都是一样的,所以我们可以将字符串转换为字符来进行判断。
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 string str; 6 cout<<"请输入一个字符串:"; 7 cin>>str; 8 int sum=0; 9 int a=str.length(); 10 if(a==0) 11 { 12 cout<<"字符串是空串!"<<endl; 13 } 14 else if(str.length()%2!=0) 15 { 16 for(int i=0; i<(a-1)/2; i++) 17 { 18 if(str[i]!=str[a-1-i]) 19 { 20 cout<<"0……该字符串不是回文串!"<<endl; 21 break; 22 } 23 else 24 sum++; 25 } 26 if(sum==(a-1)/2) 27 cout<<"1……该字符串是回文串!"<<endl; 28 } 29 else 30 { 31 for(int i=0; i<a/2; i++) 32 { 33 if(str[i]!=str[a-1-i]) 34 { 35 cout<<"0……该字符串不是回文串!"<<endl; 36 break; 37 } 38 else 39 sum++; 40 } 41 if(sum==a/2) 42 cout<<"1……该字符串是回文串!"<<endl; 43 } 44 return 0; 45 }
我判别的方式是先判断该字符串是否是空串,如果不是空串就接着判断字符串长度是奇数还是偶数,然后分别判断。
这道题的思路还是很明确的,希望能帮到大家。