c语言完成,并且禁止使用ctype.h库函数: 编写程序,输入的一句话,统计里面每个英文字母的出现次数(不区分大小写),对里面输入的 其他字符不进行统计,最后按大写字母顺序统计出每个字母的出现次数。 输入样例: Which question do you like? 1, 2 or 3? 输出样例: C:1 D:1 E:2 H:2 I:3 K:1 L:1 N:1 0:4 Q:1 R:1 S:1 T:1 U :2 W:1 Y:1
时间: 2023-02-12 17:39:40 浏览: 151
以下是完成上述任务的 C 语言代码示例:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 定义一句话的最大长度
#define ASCII_a 97 // ASCII 码中小写字母 'a' 的值
#define ASCII_A 65 // ASCII 码中大写字母 'A' 的值
int main()
{
char sentence[MAX_LEN]; // 定义一个字符数组来存储输入的一句话
int alphabet_count[26] = {0}; // 定义一个整型数组来存储每个字母的出现次数,初始值都设为 0
int i, len;
// 输入一句话
printf("请输入一句话:");
fgets(sentence, MAX_LEN, stdin);
// 去除字符串末尾的换行符
len = strlen(sentence);
if (sentence[len - 1] == '\n') {
sentence[len - 1] = '\0';
}
// 统计每个字母的出现次数
for (i = 0; i < len; i++) {
// 如果当前字符是小写字母
if (sentence[i] >= 'a' && sentence[i] <= 'z') {
alphabet_count[sentence[i] - ASCII_a]++;
}
// 如果当前字符是大写字母
else if (sentence[i] >= 'A' && sentence[i] <= 'Z') {
alphabet_count[sentence[i] - ASCII_A]++;
}
}
// 按大写字母顺序输出每个字母的出现次数
for (i = 0; i < 26; i++) {
printf("%c:%d ", 'A' + i, alphabet_count[i]);
}
return 0;
}
上述代码的工作流程如下:
1. 先输入一句话,存储在字符数组 sentence 中。
2. 去除字符串末
阅读全文