最大的回文子串
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\n",max); system("pause"); }