最大的回文子串

fgets(buf,sizeof(buf),stdin);

从文件读取字符串到buf数组中

isalpha

一种函数:判断字符ch是否为英文字母,若为小写字母,返回2,若为大写字母,返回1。若不是字母,返回0。在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,

#include <stdio.h>
#include <iostream>
using namespace std;
#include <ctype.h>
#define MAXN 5000+10
char buf[MAXN],s[MAXN];
int main()
{
    int n,m=0,i,j,k,max=0;
    fgets(buf,sizeof(s),stdin);
    
    n=strlen(buf);
    
    for(i=0;i<n;i++)
    {
        if(isalpha(buf[i])) s[m++]=toupper(buf[i]);
    }
    printf("%s",s);
    
    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("max = %d
",max);
    system("pause");
}
原文地址:https://www.cnblogs.com/zhuyaguang/p/4545582.html