最大文字列
2960 ワード
fgets(buf,sizeof(buf),stdin);
ファイルからbuf配列に文字列を読み込む
isalpha
1つの関数:文字 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");
}