样例输入:Confuciiuss say:Madam,I'm Adam;

样例输出:Madam,I'm Adam

这个题我们首先要解决三个问题一个是大小写的问题一个是把符号忽略的问题  一个是输入字符串问题

首先是输入字符串问题  我推荐使用fgets(buf,sizeof,stdin),这个输入关键字不会使用非法内存,不想gets    gets会无限网字符串里面塞东西  导致会访问非法内存;

第二我们解决大小写问题 我们可以用ctype.h文件中isalpha来转换  if(isalpha(buf[i]))判断是否为字母 然后touppre[buf[i]]转换成小写的  这样就可以随意的判断是否为回文串了

下面看代码:

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define MAXN 5000+10
char buf[MAXN],s[MAXN];

int main()

{
    int n,m = 0,max = 0;
    int i,j,k;
    fgets(buf,sizeof(s),stdin);
    n = strlen(buf);
    for(i = 0;i < n;i++)
    {
        if(isalpha(buf[i])) s[m++] = toupper(buf[i]);
    }
    for(i = 0;i < m;i++)
    {
        for(j = i;j < m;j++)
        {
            int ok = 1;
            for(k = i;k <= j;k++)
                if(s[k]!=s[i+j-k])ok = 0;
            if(ok&&j-i+1 > max) max = j-i+1;
        }
    }
    printf("%d\n",max);
    return 0;
}