回文串是从左到右或者从右到左看起来一样的字符串,如:abcba 即为一个回文串。
写一个程序判断输入的字符串是否为回文串,若是输出Yes,不是则输出No:
程序如下:
#include<stdio.h>
#include<assert.h>
#include<malloc.h>
#include<string.h>
//判断回文串
bool Is_string(char* p)
{
assert(p != NULL);
bool flog = 1;
for (int i = 0; i < strlen(p)/2; i++)
{
if (p[i] != p[strlen(p) - 1 - i])
{
flog = 0;
}
}
return flog;
}
int main()
{
int n = 0;
printf("请输入要输入的字符串长度和字符串: ");
scanf_s("%d\n", &n);
char* p = (char*)malloc((n+1) * sizeof(char));
assert(p != NULL);
gets_s(p, n+1 );
bool flog = Is_string(p);
if (flog)
printf("Yes");
else
printf("No");
free(p);
return 0;
}