写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述结果,c语言
时间: 2024-04-27 13:04:42 浏览: 65
的代码如下:
```
#include <stdio.h>
#include <ctype.h>
void count_chars(char s[]) {
int letter_count = 0, digit_count = 0, space_count = 0, other_count = 0;
for (int i = 0; s[i] != '\0'; i++) {
if (isalpha(s[i])) letter_count++;
else if (isdigit(s[i])) digit_count++;
else if (isspace(s[i])) space_count++;
else other_count++;
}
printf("Letter count: %d\n", letter_count);
printf("Digit count: %d\n", digit_count);
printf("Space count: %d\n", space_count);
printf("Other count: %d\n", other_count);
}
int main() {
char s[100];
printf("Enter a string: ");
fgets(s, sizeof(s), stdin);
count_chars(s);
return 0;
}
```
解释一下代码:
- `count_chars` 函数接收一个字符串 `s`,并统计其中的字母、数字、空格和其他字符的个数,最后输出结果;
- 在 `count_chars` 函数中,我们使用一个 `for` 循环遍历整个字符串,对每个字符进行判断;
- 对于字母,我们使用 `isalpha` 函数来判断,如果返回的值为真,则字母个数加 1;
- 对于数字,我们使用 `isdigit` 函数来判断,同理;
- 对于空格,我们使用 `isspace` 函数来判断,同理;
- 对于其他字符,我们通过前面三种情况都不成立的条件判断,其他字符个数加 1;
- 最后,我们在 `main` 函数中读入一个字符串,调用 `count_chars` 函数并传入该字符串,输出结果。
希望这个代码可以解答你的问题!
阅读全文