写一个C语言程序为输入一个以回车符结束的字符串 (少于80个字符),再输入一个字符,统计字符串中与该字符相同的字符个数。
时间: 2024-05-07 08:17:29 浏览: 94
好的,这是一个经典的C语言编程问题。以下是可能的解决方案:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[80];
char ch;
printf("请输入一个少于80个字符的字符串:\n");
fgets(str, 80, stdin);
printf("请输入一个字符:\n");
scanf("%c", &ch);
int count = 0;
for (int i = 0; i < strlen(str); i++) {
if (str[i] == ch) {
count++;
}
}
printf("字符串中与该字符相同的字符个数为 %d\n", count);
return 0;
}
```
该程序利用fgets()函数从标准输入中读入指定长度的字符串,并使用scanf()函数读入一个字符。然后,它遍历该字符串并计算与指定字符相同的字符数。最后,它输出结果并退出。
相关问题
用c语言写一个程序:输入一个以回车符结束的字符串,少于80个字符,再输入一个字符,统计字符串中与该字符相同的字符个数
以下是用 C 语言编写的程序,可以实现您的需求:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[81], ch;
int count = 0;
printf("请输入一个字符串,以回车结束(不超过80个字符):\n");
fgets(str, 81, stdin); // 读入字符串
str[strlen(str) - 1] = '\0'; // 去除回车符
printf("请输入一个字符:\n");
scanf("%c", &ch); // 读入一个字符
for (int i = 0; i < strlen(str); i++) { // 遍历字符串
if (str[i] == ch) {
count++; // 统计相同字符个数
}
}
printf("字符串中与该字符相同的字符个数为 %d\n", count);
return 0;
}
```
程序的逻辑比较简单,首先读入一个字符串,然后读入一个字符,最后遍历字符串统计相同字符的个数。需要注意的是,在读入字符串时使用了 `fgets` 函数,可以防止输入的字符串长度超过数组的范围,从而避免了越界访问的问题。另外,由于 `fgets` 函数会读入回车符,因此需要手动将其替换为字符串结束符 `\0`。
用c语言 输入一个以回车符结束的字符串(少于80个字符),再输入一个字符,统计字符串中与该字符相同的字符个数。
可以按如下步骤实现:
1. 使用字符数组存储输入的字符串,最大长度为80。
2. 使用`fgets()`函数从标准输入读取字符串,以回车符结束。
3. 使用`getchar()`函数读取一个字符,作为要统计的字符。
4. 遍历字符串,统计与给定字符相同的字符个数,使用计数器变量实现。
下面是示例代码:
```c
#include <stdio.h>
int main() {
char str[80];
char c;
int count = 0;
// 读取字符串
printf("请输入字符串(不超过80个字符):\n");
fgets(str, 80, stdin);
// 读取要统计的字符
printf("请输入要统计的字符:\n");
c = getchar();
// 统计字符个数
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == c) {
count++;
}
}
// 输出结果
printf("字符串中与%c相同的字符个数为%d\n", c, count);
return 0;
}
```
注意,`fgets()`函数会将输入的回车符也读入字符串中,因此在遍历字符串时,需要判断字符串是否已经结束,即是否遇到了字符串的结束符`\0`。
阅读全文