C++实现判断字符串是否回文实例解析
本文实例解析了C++判断字符串是否回文的实现过程,通过数据结构中的相关例子,回文判断中采用过滤空格字符、有效字符依次入栈等方法实现该功能。
具体实例代码如下:
#include<iostream>
usingnamespacestd;
#defineMax_String_Len100
#include"SqStack.h"
//判断字符串是否回文
boolispalindrome(char*in_string)
{
SqStack<char>s(Max_String_Len);
chardeblankstring[Max_String_Len],c;
inti=0;
//过滤空格字符
while(*in_string!='\0'){
if(*in_string!='')
deblankstring[i++]=*in_string;
in_string++;
}
deblankstring[i]='\0';
//有效字符依次入栈
i=0;
while(deblankstring[i]!='\0')
s.Push(deblankstring[i++]);
//从栈中弹出字符依次比较
i=0;
while(!s.Empty()){
c=s.Top();
s.Pop();
if(c!=deblankstring[i])
returnfalse;
i++;
}
returntrue;
}
intmain()
{
charinstring[Max_String_Len];
cout<<"inputastring:"<<endl;
cin.get(instring,Max_String_Len);
//cout<<instring;
if(ispalindrome(instring))
cout<<"\""<<instring<<"\""<<"isapalindrome."<<endl;
else
cout<<"\""<<instring<<"\""<<"isnotapalindrome."<<endl;
system("pause");
return0;
}