假设称正读和反读都相同的字符序列为“回文”,例如,'abba’和’abcba’是回文,‘abcde’和’ababab’则不是回文。试写一个程序判别读入的一个以’#'为结束符的字符序列是否是“回文”。
时间: 2023-11-08 11:06:05 浏览: 135
判断字符序列是否是回文
5星 · 资源好评率100%
输入一个字符串,判断它是否是回文。
具体步骤如下:
1. 读入一个字符串。
2. 判断字符串的长度是否为偶数。如果是偶数,就判断字符串的前一半和后一半是否相同;如果是奇数,就判断字符串的中间字符左右两边的字符串是否相同。
3. 如果相同,则输出“是回文”;否则输出“不是回文”。
下面是一个示例程序:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int len, i;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len / 2; i++)
{
if (str[i] != str[len - i - 1])
{
printf("不是回文\n");
return 0;
}
}
printf("是回文\n");
return 0;
}
```
这个程序首先读入一个字符串,然后计算字符串的长度。接着,程序使用一个 for 循环遍历字符串的前一半,依次比较对应的字符是否相等。如果有任何一对字符不相等,就输出“不是回文”并退出程序;否则输出“是回文”。
请注意,这个程序只是一个简单的示例,它并没有考虑一些特殊情况,比如字符串为空、字符串中有空格等等。在实际应用中,需要根据具体情况进行修改。
阅读全文