代码首先定义了一个字符数组 a
和一个指针 p
,并将它们初始化为指向同一个地址。然后通过 scanf
函数从标准输入读取一个字符串,并将其存储在数组 a
中。
接下来,代码使用 strlen
函数获取字符串的长度,并将指针 q
指向字符串的最后一个字符。
然后,代码使用一个循环来比较字符串的前半部分和后半部分的字符是否相等。如果发现不相等的字符,将变量 ch
设置为1,并跳出循环。
最后,根据变量 ch
的值输出结果。如果 ch
等于0,表示字符串是回文字符串,输出 "yes";如果 ch
等于1,表示字符串不是回文字符串,输出 "no"。
#include<stdio.h>
#include<string.h>
int main()
{
char a[30]={'\0'};
char* p=a;
char* q;
int i;
scanf("%s",a);
int c;
int ch;
ch=0;
c=strlen(a);
q=&a[c-1];
for(i=0;i<=c/2;i=i+1)
{
if(*(p+i)!=*(q-i))
{
ch=1;
break;
}
}
if(ch==0)
{
printf("yes");
}
else if(ch==1)
{
printf("no");
}
return 0;
}