c语言输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数 程序编写,多种方法
时间: 2024-02-29 18:51:33 浏览: 26
好的,以下是两种实现方式:
方法一:使用字符数组和循环遍历统计各类字符个数
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[1000];
int i, digits, letters, spaces, others;
printf("请输入一行字符:\n");
fgets(str, 1000, stdin);
digits = letters = spaces = others = 0;
for (i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
digits++;
} else if (isalpha(str[i])) {
letters++;
} else if (isspace(str[i])) {
spaces++;
} else {
others++;
}
}
printf("数字个数:%d\n", digits);
printf("英文字母个数:%d\n", letters);
printf("空格个数:%d\n", spaces);
printf("其他字符个数:%d\n", others);
return 0;
}
```
方法二:使用指针和switch语句统计各类字符个数
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[1000];
char *p = str;
int digits = 0, letters = 0, spaces = 0, others = 0;
printf("请输入一行字符:\n");
fgets(str, 1000, stdin);
while (*p != '\0') {
switch (*p) {
case ' ':
spaces++;
break;
case '\n':
break;
case '\t':
break;
default:
if (isdigit(*p)) {
digits++;
} else if (isalpha(*p)) {
letters++;
} else {
others++;
}
}
p++;
}
printf("数字个数:%d\n", digits);
printf("英文字母个数:%d\n", letters);
printf("空格个数:%d\n", spaces);
printf("其他字符个数:%d\n", others);
return 0;
}
```
以上两种方法都可以实现输入一行字符,统计其中的英文字符、数字字符、空格和其他字符的个数。方法一使用了循环和数组,方法二使用了指针和switch语句。