用c语言中switch语句和isalpha,isspace,isdigit等函数来解决:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
时间: 2024-05-13 12:18:26 浏览: 85
可以使用C语言中的`switch`语句和`isalpha`、`isspace`、`isdigit`等函数来实现。具体思路如下:
1. 定义4个计数器,分别用于统计英文字母、空格、数字和其他字符的个数,初始值都为0。
2. 使用`gets`函数读入一行字符,并用指针指向该字符串。
3. 使用`while`循环遍历整个字符串,对每个字符进行分类统计。
4. 对于每个字符,使用`switch`语句根据其类型进行分类处理。如果是英文字母,则调用`isalpha`函数判断,如果是空格,则调用`isspace`函数判断,如果是数字,则调用`isdigit`函数判断,否则就是其他字符。
5. 根据字符类型分别将相应计数器加1。
6. 统计完毕后,输出各个计数器的值。
下面是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[100];
int letter_count = 0, space_count = 0, digit_count = 0, other_count = 0;
char *p;
printf("请输入一行字符:");
gets(str);
p = str;
while (*p != '\0')
{
switch (*p)
{
case ' ':
space_count++;
break;
case '\t': // 制表符也算空格
space_count++;
break;
default:
if (isalpha(*p))
letter_count++;
else if (isdigit(*p))
digit_count++;
else
other_count++;
break;
}
p++;
}
printf("英文字母个数:%d\n", letter_count);
printf("空格个数:%d\n", space_count);
printf("数字个数:%d\n", digit_count);
printf("其他字符个数:%d\n", other_count);
return 0;
}
```
阅读全文