编写一个程序,设计顺序串s中每一个字符出现的次数。用C程序结构写出代码
时间: 2024-10-14 10:10:03 浏览: 45
在C语言中,你可以创建一个哈希表(这里可以用数组表示,因为字符范围有限)来统计每个字符出现的次数。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含字符处理函数
#define MAX_CHAR 128 // 假设ASCII字符集内最多有128种字符
// 初始化字符计数数组
int charCount[MAX_CHAR] = {0};
void countChars(char *s) {
while (*s != '\0') {
if (isalpha(*s)) { // 只计算字母字符,非字母忽略
++charCount[(unsigned char)*s];
}
s++;
}
}
void printCounts() {
for (int i = 0; i < MAX_CHAR; i++) {
if (charCount[i] > 0) {
printf("%c appears %d times.\n", (char)i, charCount[i]);
}
}
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 接收用户输入
input[strcspn(input, "\n")] = '\0'; // 移除换行符
countChars(input);
printCounts();
return 0;
}
// 相关问题--
1. 这个程序是否能准确统计非ASCII字符的出现次数?
2. 如何扩展这个程序以支持Unicode字符?
3. 如果字符串很长,一次性读取会不会占用大量内存?有没有更好的解决方案? >>
阅读全文