用c语言编写一个程序,使其实现:从键盘读入一个字符串(最多127个字符),检查该字符串是否是回文。所谓回文即正向与反向的拼写都一样。如:adgda是回文:1234554321也是回文。
时间: 2024-02-03 22:13:40 浏览: 29
以下是用C语言编写的实现代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 128
int main() {
char str[MAX_LENGTH];
int i, j, len, flag = 1;
printf("请输入一个字符串:");
fgets(str, MAX_LENGTH, stdin);
len = strlen(str) - 1; // 减去最后的换行符
for (i = 0, j = len - 1; i < len / 2; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag) {
printf("是回文字符串。\n");
} else {
printf("不是回文字符串。\n");
}
return 0;
}
```
以上代码中,我们使用了 `fgets` 函数从键盘读入一个字符串,然后使用循环遍历字符串的前半部分和后半部分,判断它们是否相等。如果不相等,就说明不是回文字符串,设置标志位为 0,跳出循环。最后根据标志位输出结果。
相关问题
用C语言写一个程序:从键盘输入字符串,统计字符串中数字字符出现的次数并输出
下面是一个简单的 C 语言程序,可以实现从键盘输入字符串,统计字符串中数字字符出现的次数并输出:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, count = 0;
printf("请输入字符串:");
scanf("%s", str);
for (i = 0; i < strlen(str); i++) {
if (str[i] >= '0' && str[i] <= '9') {
count++;
}
}
printf("字符串中数字字符出现的次数为:%d\n", count);
return 0;
}
```
程序首先声明一个字符数组 `str`,用于存储输入的字符串。然后使用 `scanf` 函数从键盘读入字符串,存储到 `str` 数组中。
接着使用 `for` 循环遍历字符串中的每个字符,如果当前字符是数字字符,则将计数器 `count` 加 1。
最后输出计数器 `count` 的值,即字符串中数字字符出现的次数。
需要注意的是,这个程序只能统计 ASCII 码表中的数字字符,如果字符串中包含其他编码的数字字符,可能无法正确统计。同时,这个程序也没有对字符串长度进行限制,如果输入的字符串过长,可能会导致程序崩溃。
用c语言编写一个程序实现:输入一个以回车结束的字符串(少于80个字符),统计字母a的个数。
好的,以下是用 C 语言编写的程序,可以实现输入一个以回车结束的字符串,统计其中字母 a 的个数:
```c
#include <stdio.h>
int main() {
char str[80]; // 存储输入的字符串
int count = 0; // 统计字母 a 的个数
printf("请输入一个字符串(少于80个字符):\n");
fgets(str, 80, stdin); // 从标准输入读入字符串
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == 'a' || str[i] == 'A') {
count++;
}
}
printf("字母 a 的个数为:%d\n", count);
return 0;
}
```
程序的执行流程如下:
1. 定义一个 char 类型的数组 `str`,用于存储输入的字符串。
2. 定义一个 int 类型的变量 `count`,用于统计字母 a 的个数,初始化为 0。
3. 使用 `fgets` 函数从标准输入读入字符串,最大读入 80 个字符。
4. 使用 for 循环遍历字符串,如果当前字符为字母 a 或 A,则将 `count` 加 1。
5. 输出统计结果。
注意:本程序未做输入格式检查,如果输入的字符串超过 80 个字符,可能会导致程序出错。