在C语言中,如何用数组的方法完成输入一行字符串(长度不超过50),判断是否为回文。例如ABA是回文字符串,ABC不是回文字符串。
时间: 2024-05-02 21:18:50 浏览: 91
aba.rar_ABA_判断以@为结束符的字符串是否_回文序列
可以使用以下步骤来判断一个字符串是否为回文:
1. 使用scanf()函数读入字符串,并存储在字符数组中。
2. 计算字符串的长度,并将其存储在一个变量中。
3. 循环遍历字符串的前一半,并比较前一半和后一半的字符是否相同。
4. 如果前一半和后一半的字符都相同,则该字符串是回文,否则不是回文。
下面是一个示例代码:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[50];
int len, i;
int is_palindrome = 1; // 假设该字符串是回文
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
is_palindrome = 0; // 如果前一半和后一半的字符不同,则该字符串不是回文
break;
}
}
if (is_palindrome) {
printf("该字符串是回文。\n");
} else {
printf("该字符串不是回文。\n");
}
return 0;
}
```
在该示例代码中,我们首先使用scanf()函数读入字符串,并使用strlen()函数计算字符串的长度。然后,我们使用一个循环遍历字符串的前一半,并比较前一半和后一半的字符是否相同。如果发现不同的字符,则将is_palindrome变量设置为0,表示该字符串不是回文。最后,我们根据is_palindrome的值输出判断结果。
阅读全文