编写程序统计从键盘输入的一行文本中各个字母的个数。输入以回车键结束。不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 ***输入格式:调用getchar()函数依次输入每个字符 ***输出格式:"%c(%c):%d\n" 例如输入以下文本: Hello World 程序将输出: A(a):0 B(b):0 C(c):0 D(d):1 E(e):1 F(f):0 G(g):0 H(h):1 I(i):0 J(j):0 K(k):0 L(l):3 M(m):0 N(n):0 O(o):2 P(p):0 Q(q):0 R(r):1 S(s):0 T(t):0 U(u):0 V(v):0 W(w):1 X(x):0 Y(y):0 Z(z):0
时间: 2024-02-19 08:57:21 浏览: 80
好的,这是一个比较基础的编程问题,我来帮你解决。
思路如下:
1. 用一个数组来记录每个字母出现的次数,数组下标对应字母的ASCII码值。
2. 不区分大小写,可以先将输入的字母全部转换成小写或大写。
3. 输入以回车键结束,可以使用while循环读取每个字符,直到读到回车为止。
4. 判断读入的字符是否为字母,如果是,则将对应的数组元素加一。
5. 最后遍历数组,输出每个字母出现的次数。
下面是完整的代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int count[128] = {0}; // 用来记录每个字母出现的次数,数组下标对应字母的ASCII码值
char c;
while ((c = getchar()) != '\n') { // 不断读取字符,直到读到回车
if (isalpha(c)) { // 判断是否为字母
c = tolower(c); // 统一转换为小写字母
count[c]++; // 对应数组元素加一
}
}
for (int i = 'a'; i <= 'z'; i++) { // 遍历数组,输出每个字母出现的次数
printf("%c(%c):%d\n", toupper(i), i, count[i] + count[toupper(i)]);
}
return 0;
}
```
希望能对你有所帮助!
阅读全文