回文问题

难点,输入字符的问题,fgets(buf,sizeof(s),stdin)输入一行字符,包括空格,\n
#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;
	int ok;
	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++)
		{
			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;
}

你可能感兴趣的:(回文问题)