📅  最后修改于: 2023-12-03 15:00:12.544000             🧑  作者: Mango
在这个C测验中,我们将讨论问题4并提供解决方案。
问题4要求编写一个程序,该程序接受一个字符串作为输入,并统计该字符串中每个字符出现的次数。程序应该忽略字符的大小写。
示例输入:Hello, World!
示例输出:
h: 1
e: 1
l: 3
o: 2
,: 1
(space): 1
w: 1
r: 1
d: 1
!: 1
下面是问题4的解决方案的代码片段:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
// 定义字符计数函数
void countCharacters(char* str) {
int count[26] = {0}; // 用于计数的数组,每个字母对应一个元素
// 遍历输入的字符串,并统计出现次数
for (int i = 0; i < strlen(str); i++) {
char c = tolower(str[i]); // 将字符转换为小写,以忽略大小写
// 检查字符是否为字母
if (isalpha(c)) {
count[c-'a']++; // 增加相应字母的计数器
}
}
// 打印字符出现次数
for (int i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%c: %d\n", i+'a', count[i]);
}
}
}
int main() {
char str[100]; // 声明一个足够大的字符数组,用于存储输入的字符串
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 从标准输入读取字符串
// 移除换行符
if ((strlen(str) > 0) && (str[strlen(str) - 1] == '\n')) {
str[strlen(str) - 1] = '\0';
}
// 调用字符计数函数
countCharacters(str);
return 0;
}
这个程序实现了一个字符计数功能。它接受一个字符串作为输入,并统计该字符串中每个字符出现的次数。程序会忽略字符的大小写。
函数countCharacters
通过遍历输入的字符串并使用一个长度为26的整型数组进行计数。每个字母对应数组中的一个元素,即count[0]
对应字母'a',count[1]
对应字母'b',以此类推。
在遍历字符串时,使用tolower
函数将字符转换为小写,以便忽略大小写。然后,使用isalpha
函数检查字符是否为字母。如果是字母,则增加相应字母的计数器。
最后,通过循环遍历计数数组,并打印出现次数大于0的字符及其出现次数。
程序通过主函数main
接收用户输入的字符串,并调用countCharacters
函数进行计数。
要编译并运行上述程序,您需要一个C编译器。打开一个文本编辑器,将代码复制并保存为char_count.c
。
然后,在终端中使用以下命令编译程序:
gcc -o char_count char_count.c
最后,运行生成的可执行文件:
./char_count
程序将提示您输入一个字符串,并输出每个字符的计数。
这就是问题4的解决方案!希望对您有所帮助!