用c语言使用指针编程,判断输入的一串字符是否为“回文”,如果是输出YES,否则输出NO 。所谓“回文”,是指顺读和倒读都一样的字符串。例如"level","ABCCBA"都是回文。
时间: 2024-05-15 20:12:52 浏览: 148
下面是一个使用指针的C语言实现,可以判断输入的字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len, flag = 0;
char *p, *q;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
p = str;
q = str + len - 1;
for(i = 0; i < len/2; i++) {
if(*(p+i) != *(q-i)) {
flag = 1;
break;
}
}
if(flag == 1)
printf("NO\n");
else
printf("YES\n");
return 0;
}
```
首先,我们定义了一个字符数组 `str` 来存储用户输入的字符串,然后通过 `strlen()` 函数获取字符串的长度。
接着,我们定义了两个指针变量 `p` 和 `q`,分别指向字符串的第一个字符和最后一个字符。我们使用了指针的算术运算,通过 `str + len - 1` 计算出字符串的最后一个字符的地址。
然后,我们使用 `for` 循环遍历字符串的前一半字符,比较前一半字符和后一半字符是否相等。如果有任何不相等的情况,我们将 `flag` 标志设置为 1,表示这不是一个回文字符串。
最后,根据 `flag` 的值输出对应的结果。
需要注意的是,在定义字符串数组时,我们必须确保数组足够大,能够存储用户输入的最大长度。
阅读全文