现在有一系列的字符串,要求你编写一个c语言程序判断这个字符串的逆序是否和他本身一样,若一样则输出"Yes"否则输出"No" 输入 有多组输入,每行表示一个字符串(不超过100位) 输出 对于每组输入 输出"Yes"或"No"同时要i求输入用ctrl+z结束,输入用gets
时间: 2023-07-19 18:29:11 浏览: 90
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
好的,根据你的要求,可以使用 `fgets()` 函数来读取输入,并且可以使用 `Ctrl+Z` 来结束输入。同时,我们可以使用 `strcmp()` 函数来判断字符串是否相同,使用循环来判断字符串的逆序是否和原来的字符串相同。
下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
while (fgets(str, 100, stdin) != NULL) {
int i, length = strlen(str);
if (str[length - 1] == '\n') {
str[length - 1] = '\0'; // 去掉换行符
length--;
}
for (i = 0; i < length / 2; i++) {
char temp = str[i];
str[i] = str[length - 1 - i];
str[length - 1 - i] = temp;
}
if (strcmp(str, &str[length / 2 + (length % 2)]) == 0) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
```
这段代码的思路是,先使用循环将字符串逆序,然后使用 `strcmp()` 函数来判断字符串的前半部分和后半部分是否相同。由于字符串长度可能为奇数或偶数,所以需要根据字符串长度的奇偶性来计算后半部分字符串的起始位置。
希望可以帮助你解决问题!
阅读全文