用C语言编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输人字符串以及输出上述的结果。
时间: 2023-11-17 20:12:07 浏览: 131
C语言程序设计-输入一行字符,分别统计出英文大小写字母、空格、数字和其他字符的个数
5星 · 资源好评率100%
以下是用C语言编写的函数,可以实现统计字符串中字母、数字、空格和其他字符的个数的功能:
```c
#include <stdio.h>
void count_chars(char str[]) {
int letters = 0, digits = 0, spaces = 0, others = 0;
int i;
for (i = 0; str[i] != '\0'; i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
letters++;
} else if (str[i] >= '0' && str[i] <= '9') {
digits++;
} else if (str[i] == ' ') {
spaces++;
} else {
others++;
}
}
printf("字母个数:%d\n数字个数:%d\n空格个数:%d\n其他字符个数:%d\n", letters, digits, spaces, others);
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str);
count_chars(str);
return 0;
}
```
在主函数中,我们首先定义了一个字符数组 `str`,用于存储输入的字符串。然后,使用 `gets()` 函数从控制台读入字符串,并将其作为实参传递给 `count_chars()` 函数。
在 `count_chars()` 函数中,我们定义了四个变量 `letters`、`digits`、`spaces` 和 `others`,分别用于记录字母、数字、空格和其他字符的个数。接着,使用 `for` 循环遍历字符串中的每个字符,根据其 ASCII 码值判断其属于哪种类型的字符,并分别对对应的变量进行增加操作。最后,我们使用 `printf()` 函数将统计结果输出到控制台中。
需要注意的是,在输入字符串时使用 `gets()` 函数存在一定的安全风险,因为该函数不会检查输入的字符串长度是否超过了数组的大小,可能会导致缓冲区溢出。建议使用更加安全的函数 `fgets()` 来代替。
阅读全文