编写一个程序,提示用户输入字符串并报告该字符串是否为回文。如果字符串的前后读法相同,那么它就是回文。例如,“妈妈”、“爸爸”和“中午”都是回文。使用C语言
时间: 2023-12-26 13:04:25 浏览: 39
以下是一个 C 语言程序,提示用户输入一个字符串并检查它是否为回文:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
fgets(str, 100, stdin);
len = strlen(str) - 1;
for (i = 0; i < len; i++) {
if (str[i] != str[len - 1 - i]) {
flag = 1;
break;
}
}
if (flag == 1) {
printf("%s 不是回文。\n", str);
} else {
printf("%s 是回文。\n", str);
}
return 0;
}
```
解释:
- `fgets` 函数用于获取用户输入的字符串。
- `strlen` 函数用于获取字符串的长度,需要减去 1 是因为 `fgets` 函数会把换行符也算作字符串的一部分。
- `for` 循环用于检查字符串是否为回文,通过比较字符串的第 i 个字符和倒数第 i 个字符来判断。如果不相等,就将 `flag` 标记为 1,表示字符串不是回文。
- 最后根据 `flag` 的值来输出字符串是否为回文。
相关问题
编写一个程序,判断输入的字符串是否为回文字符串,如果是则输出该字符串
好的,我能够为您提供一个 Python 的实现版本。
代码如下:
```python
def is_palindrome(s):
"""判断一个字符串是否为回文字符串"""
return s == s[::-1] # 判断反转后的字符串是否与原字符串相等
if __name__ == '__main__':
s = input("请输入一个字符串:")
if is_palindrome(s):
print(f"{s} 是一个回文字符串")
else:
print(f"{s} 不是一个回文字符串")
```
输入一个字符串后,程序会调用 `is_palindrome` 函数判断该字符串是否为回文字符串,如果是,则输出给出的字符串及其是回文字符串的提示;如果不是,则输出给出的字符串及其不是回文字符串的提示。
注意:此处的回文字符串是指正反都能读通的字符串,例如 "level"、"noon" 等。
希望我的回答能够帮助到您!如果还有其他问题,请随时提出。
用c语言编写一个程序,输入一个字符串并判断该串是否为回文串
以下是用C语言编写的判断回文串的程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i, flag = 0;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
flag = 1;
break;
}
}
if (flag == 1) {
printf("%s 不是回文串\n", str);
} else {
printf("%s 是回文串\n", str);
}
return 0;
}
```
程序中首先定义了一个字符数组 `str`,用于存储用户输入的字符串。然后使用 `scanf` 函数读取用户输入的字符串。
接着,使用 `strlen` 函数获取字符串的长度,并使用 `for` 循环遍历字符串的前一半字符,判断其是否与后一半字符相同。如果有不同的字符,则标记变量 `flag` 取值为 1,表示该字符串不是回文串。
最后,根据标记变量 `flag` 的值,输出相应的提示信息。