用c语言使用指针编程,判断输入的一串字符是否为“回文”,如果是输出YES,否则输出NO 。所谓“回文”,是指顺读和倒读都一样的字符串。例如"level","ABCCBA"都是回文。
时间: 2024-05-12 15:13:16 浏览: 30
这里提供一种使用指针的C语言实现方式:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char *p1, *p2;
int len, i;
int flag = 1;
printf("请输入要判断的字符串:");
scanf("%s", str);
len = strlen(str);
p1 = str;
p2 = str + len - 1;
for (i = 0; i < len / 2; i++) {
if (*p1 != *p2) {
flag = 0;
break;
}
p1++;
p2--;
}
if (flag) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
这里使用了两个指针p1和p2,分别指向字符串的首尾。然后逐个比较字符是否相等,如果不相等则说明不是回文,直接退出循环并输出NO。如果循环结束后都没有退出,则说明是回文,输出YES。
相关问题
利用c语言及指针功能编程判断输入的一串字符是否为“回文”,如果是则输出Yes,否则输出No,所谓“回文”,是指正读和倒读都一样的字符串。
以下是使用C语言及指针功能编程判断输入的一串字符是否为回文的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i;
int flag = 1; // 用于标记是否为回文
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
// 判断是否为回文
for (i = 0; i < len / 2; i++) {
if (*(str + i) != *(str + len - i - 1)) {
flag = 0;
break;
}
}
if (flag) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
首先定义一个字符数组`str`,用于存储输入的字符串。然后使用`scanf`函数读入字符串。接着使用`strlen`函数获取字符串长度。
在判断是否为回文时,使用循环遍历字符串的前一半,对于每个字符,将其与对应位置上的字符进行比较,如果不相等,则标记为非回文。最后根据标记输出相应的结果。
需要注意的是,在判断字符是否相等时,可以使用数组下标访问字符,也可以使用指针访问字符,如上述代码中所示,使用指针访问字符可以更加简洁明了。
用C语言编写 使用指针编程,判断输入的一串字符是否为“回文”,如果是输出YES,否则输出NO 。所谓“回文”,是指顺读和倒读都一样的字符串。例如"level","ABCCBA"都是回文。
下面是使用指针编写的C语言程序,可以判断一个字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
char *p1, *p2;
int len, i;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
p1 = str;
p2 = str + len - 1;
for (i = 0; i < len / 2; i++) {
if (*p1 != *p2) {
printf("NO\n");
return 0;
}
p1++;
p2--;
}
printf("YES\n");
return 0;
}
```
程序的思路是,将输入的字符串分别用两个指针p1和p2指向开头和结尾,然后从两端开始向中间扫描,如果发现两个字符不相等,则说明该字符串不是回文,输出NO;否则继续扫描,直到扫描完整个字符串,输出YES。
阅读全文