#include
#define INIT_SIZE 20
#define INCR_SIZE 10
unsigned int StrLen(char *str) /// 求出字符串中含有的字符个数,不包括结束标志
{ /// * 这里我没有用库函数求长度,我不知道怎么用
unsigned int i;
for (i=0; str[i++]!='\0';);
return (i - 1);
}
int IsPalindrome(char * str)
{
int len = StrLen(str);
int i = 0;
for (;i
}
return 1;
}
void main()
{
char * str = (char *) malloc (INIT_SIZE * sizeof(char));
char ch;
int i = 0; //字符串当前字符数
int len = INIT_SIZE; //字符串空间大小
while (ch = getchar()) { // 循环录入字符串
if (ch == '@') { ///如果按回车键,则结束
str[i] = '\0'; ///字符串结束标志
break;
}
if (i < len-1) {
str[i] = ch;
} else {
str = (char *) realloc (str, (len + INCR_SIZE) * sizeof(char)); //增加存储空间
str[i] = ch;
len += INCR_SIZE; //重新记录字符串空间
}
i++;
}
if (IsPalindrome(str) != 0) {
printf("YES\n");
} else {
printf("NO\n");
}
}