输入一行字符,分别统计出其中英文字母,数字和其他字符的个数,采用指针操作完成上述工作
时间: 2024-01-07 19:03:22 浏览: 64
好的,这是一个C语言的问题,我可以帮你解答。以下是代码:
```c
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[100];
int alpha = 0, digit = 0, other = 0;
char *p = str;
printf("请输入一行字符:\n");
fgets(str, 100, stdin);
while (*p != '\0')
{
if (isalpha(*p))
{
alpha++;
}
else if (isdigit(*p))
{
digit++;
}
else
{
other++;
}
p++;
}
printf("字母个数:%d\n", alpha);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
return 0;
}
```
解释一下代码:
- `char str[100];` 定义了一个字符数组,用于存储用户输入的字符串。
- `int alpha = 0, digit = 0, other = 0;` 定义了三个变量用于统计字母、数字和其他字符的个数,初始值均为0。
- `char *p = str;` 定义了一个指针,指向字符数组的首地址。
- `fgets(str, 100, stdin);` 从标准输入读取用户输入的字符串,存储到字符数组`str`中。
- `while (*p != '\0')` 循环遍历整个字符串,直到遇到字符串的结束符`\0`。
- `if (isalpha(*p))` 判断当前字符是否为字母,如果是,则字母个数加1。
- `else if (isdigit(*p))` 判断当前字符是否为数字,如果是,则数字个数加1。
- `else` 如果不是字母也不是数字,则其他字符个数加1。
- `p++;` 指针指向下一个字符。
- 最后输出字母、数字和其他字符的个数即可。
希望能帮助到你!
阅读全文