最大文字列

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"); }