#include<stdio.h>
#include<string.h>
int main()
{
char a[501],b[501],c[501];//a[]为从键盘输入的数组,b[]存储顺序子串,c[]存储逆序的b[]子串
int i,j,k=2,len;//k为子串长度
gets(a);//输入字符串a[]
len=strlen(a);
while(k<len+1)//k为子串的长度
{
for(i=0; i<=strlen(a)-k+1; i++)//i<=strlen(a)-k+1保证j<i+k(j==i+k-1)时不超过a[]的长度范围
{
int y=0,z=0;
for(j=i; j<i+k; j++)//存k长度的子串的b[]中
{
b[y]=a[j];
y++;
}
b[y]='\0';//'\0'是字符串结束的标志
for(j=y-1; j>=0; j--)//将b[]逆序存储到c[]
{
c[z]=b[j];
z++;
}
c[z]='\0';
if(strcmp(b,c)==0)//等于0即b与c相等,即为回文字符串
puts(b);
}
k++;//子串长度增加
}
return 0;
}
![]()