c语言编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数。在主函数中输入字符串以及输出上述的结果。
时间: 2023-11-17 17:10:29 浏览: 84
下面是一份示例代码,该函数会统计输入字符串中的字母、数字、空格和其他字符的个数,并将结果存储到指定的变量中。
```c
#include <stdio.h>
#include <ctype.h>
void count_chars(const char* str, int* letters, int* digits, int* spaces, int* others) {
while (*str) {
if (isalpha(*str)) {
(*letters)++;
} else if (isdigit(*str)) {
(*digits)++;
} else if (*str == ' ') {
(*spaces)++;
} else {
(*others)++;
}
str++;
}
}
int main() {
char str[100];
int letters = 0, digits = 0, spaces = 0, others = 0;
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
count_chars(str, &letters, &digits, &spaces, &others);
printf("字母个数:%d\n", letters);
printf("数字个数:%d\n", digits);
printf("空格个数:%d\n", spaces);
printf("其他字符个数:%d\n", others);
return 0;
}
```
在这个示例中,我们使用了四个指针变量来存储不同类型字符的数量。在 `count_chars` 函数中,我们使用了 `ctype.h` 库中的 `isalpha` 和 `isdigit` 函数来判断字符是否是字母或数字。我们还使用了一个指针来迭代输入字符串,逐个字符判断并计数。
在主函数中,我们首先使用 `fgets` 函数从标准输入中读取一个字符串。然后,我们将指向四个变量的指针传递给 `count_chars` 函数,以便在计算完成后能够访问它们并将结果输出到屏幕上。
注意:在使用 `fgets` 函数读取输入字符串时,我们需要确保输入字符串的长度不超过我们定义的 `str` 数组的长度,否则会导致缓冲区溢出。
阅读全文