C++求一个字符串中的所有回文字符串并且输出结果(字符串操作)

#include <iostream>#include <string.h>using namespace std;bool check(char *str)//判断这是不是一个回文字符串.{int i = 0;int j = strlen(str)-1;while(i<j){if(*(str+i)!=*(str+j))return false;i++;j–;}return true;}void get_str(char *str){int n = strlen(str)-1;char *p = new char[n+1];strcpy(p,str);int i = 0;int j ;for(;i<n;i++){p+=i;j = n-i;while(j>0)//这里j不用等于0,一个字符虽然也是回文字符,,但是没有必要,我们这里求的回文是>=2的字符串。{*(p+j+1)='\0';if(check(p)){cout<<p<<" ";cout<<endl;}j–;}strcpy(p,str);}}//思想是i=0开始,j=n开始//i不变,j–,知道i>=j时才把以i=0这个位置的所有字符串找寻了一遍,//i++,j=n开始重复上述操作.//…..//知道i==n时,结束,并输出求得的所有回文字符串.int main(){char s[]="abaeedd";get_str(s);return 0;}

在向山靠近一点,才发现这座山,好象一位诗人遥望远方,

C++求一个字符串中的所有回文字符串并且输出结果(字符串操作)

相关文章:

你感兴趣的文章:

标签云: