如果要编写一个函数,由实参传来一个字符串,统计此字符串中字母、空格、数字和其他 字符的个数;在主函数中输入字符串,然后调用该函数进行统计并(在主函数中)输出结果 。应该用什么算法?
时间: 2023-11-17 16:09:28 浏览: 70
c中头文件ctype的介绍
可以使用遍历字符串的算法,统计每个字符的类型并累加计数。具体实现可以使用一个数组来记录每种字符类型的计数,例如用 `count[0]` 记录字母个数、`count[1]` 记录空格个数、`count[2]` 记录数字个数等。遍历字符串时,对于每个字符,根据其 ASCII 码值判断其类型,并将相应的计数器加一即可。最后在主函数中输出各种字符类型的计数结果。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void count_chars(char *str, int *count) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
char c = str[i];
if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
count[0]++;
} else if (c == ' ') {
count[1]++;
} else if (c >= '0' && c <= '9') {
count[2]++;
} else {
count[3]++;
}
}
}
int main() {
char str[100];
int count[4] = {0};
printf("请输入字符串:\n");
fgets(str, 100, stdin);
count_chars(str, count);
printf("字母个数:%d\n", count[0]);
printf("空格个数:%d\n", count[1]);
printf("数字个数:%d\n", count[2]);
printf("其他字符个数:%d\n", count[3]);
return 0;
}
```
阅读全文