C语言编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。例如:输入aA12 **,则输出字母个数:2;数字个数:2;空格个数:2;其它字符个数:2,给出程序流程图
时间: 2024-12-17 15:41:36 浏览: 7
在C语言中,你可以创建一个名为`count_chars`的函数,它接受一个字符串作为参数,并分别计数其中的字母、数字、空格和其他字符的数量。以下是简单的程序实现:
```c
#include <stdio.h>
#include <ctype.h> // 引入ctype.h库,用于获取字符类型
// 函数声明
void count_chars(char *str);
int main() {
char input[100]; // 输入字符串的数组
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 从标准输入读取字符串,注意去掉换行符
input[strcspn(input, "\n")] = '\0'; // 移除fgets添加的换行符
count_chars(input);
return 0;
}
// 字符分类并计数的函数
void count_chars(char *str) {
int alpha_count = 0, digit_count = 0, space_count = 0, other_count = 0;
for (int i = 0; str[i] != '\0'; i++) { // 遍历字符串
if (isalpha(str[i])) { // 如果是字母
alpha_count++;
} else if (isdigit(str[i])) { // 如果是数字
digit_count++;
} else if (isspace(str[i])) { // 如果是空格
space_count++;
} else { // 其他字符(如特殊符号)
other_count++;
}
}
printf("字母个数: %d\n", alpha_count);
printf("数字个数: %d\n", digit_count);
printf("空格个数: %d\n", space_count);
printf("其他字符个数: %d\n", other_count);
}
```
程序流程图大致如下:
1. 主函数中接收用户输入 -> 使用`fgets`读取 -> 调用`count_chars`函数
2. `count_chars`函数中遍历字符串,对每个字符检查其类型 -> 分别累加到对应的计数器
3. 遇到字母、数字、空格或其他字符时,对应计数器+1
4. 循环结束后,打印出四种字符类型的计数结果。
阅读全文