输入一行字符,分别统计出其中英文字母,数字和其他字符的个数,采用指针操作完成上述工作
时间: 2024-01-06 08:03:52 浏览: 57
好的,这是一个经典的字符统计问题。以下是用指针操作实现的代码:
```c
#include <stdio.h>
#include <ctype.h>
void count(char* str, int* letters, int* digits, int* others) {
while (*str != '\0') {
if (isalpha(*str)) {
(*letters)++;
} else if (isdigit(*str)) {
(*digits)++;
} else {
(*others)++;
}
str++;
}
}
int main() {
char str[100];
int letters = 0, digits = 0, others = 0;
printf("请输入一行字符:");
fgets(str, 100, stdin);
count(str, &letters, &digits, &others);
printf("英文字母个数:%d\n", letters);
printf("数字个数:%d\n", digits);
printf("其他字符个数:%d\n", others);
return 0;
}
```
在这个程序中,`count()` 函数接收一个字符串指针 `str` 和三个整型指针 `letters`、`digits` 和 `others`,分别表示英文字母、数字和其他字符的个数。然后在函数内部,通过遍历字符串,对每个字符进行判断,然后更新相应的计数器。
在 `main()` 函数中,我们先定义一个长度为 100 的字符数组 `str`,然后通过 `fgets()` 函数从标准输入中读取一行字符。接着调用 `count()` 函数,把计数器的地址传递给它,让它统计字符个数。最后输出结果。
希望这个代码能够解决你的问题。如果你还有其他问题,请随时提出。
阅读全文