编写程序:从键盘输入一个字符串,判断输入的字符串是否为回文,若是回文,输出:YES,否则输出:NO。注意:要求用指针的方式对数组进行操作。
时间: 2024-06-03 18:11:24 浏览: 185
对于一个从键盘输入的字符串,判断其是否为回文。
5星 · 资源好评率100%
好的,原样转述你的问题:编写程序:从键盘输入一个字符串,判断输入的字符串是否为回文,若是回文,输出:YES,否则输出:NO。注意:要求用指针的方式对数组进行操作。
好的,以下是代码实现:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
char *p = str;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for(i = 0; i < len/2; i++)
{
if(*(p+i) != *(p+len-1-i))
{
flag = 1;
break;
}
}
if(flag == 0)
printf("YES\n");
else
printf("NO\n");
return 0;
}
思路解析:
1. 声明一个字符数组和指向字符数组的指针
2. 通过scanf()函数从键盘输入一个字符串,并将其存储到数组str中
3. 通过strlen()函数获取字符串的长度,存储到变量len中
4. 通过一个for循环,遍历数组str的前半部分,比较前半部分和后半部分是否相等,若不相等,flag标志置为1,退出循环
5. 判断flag标志,若为0,输出YES,否则输出NO
注:由于要使用指针对数组进行操作,因此在比较数组的元素时,使用了指针的方式进行访问。即:*(p+i)表示str[i],*(p+len-1-i)表示str[len-1-i]。
阅读全文