C语言输入一行字符,分别统计其中的英文字母、数字、空格和其他字符的个数。
时间: 2023-11-23 18:54:18 浏览: 93
这是两种不同的C语言程序,都可以输入一行字符并统计其中的英文字母、数字、空格和其他字符的个数。第一种方法使用了while循环和switch语句,第二种方法使用了自定义函数和for循环。两种方法的核心思想都是遍历输入的字符,根据字符的类型进行计数。需要注意的是,第一种方法中的if语句可以使用switch语句代替,而第二种方法中的gets函数已经被废弃,应该使用fgets函数代替。
代码1:
```c
#include <stdio.h>
int main(){
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\n'){
switch(c){
case ' ': space++; break;
case '0'...'9': digit++; break;
case 'a'...'z':
case 'A'...'Z': letters++; break;
default: other++; break;
}
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d",letters,space,digit,other);
return 0;
}
```
代码2:
```c
#include <stdio.h>
#include <string.h>
void count(char c[]){
int letters=0,space=0,digit=0,other=0;
int i;
for (i = 0; c[i]; i++) {
if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z') letters++;
else if(c[i]==' ') space++;
else if(c[i]>='0'&&c[i]<='9') digit++;
else other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d",letters,space,digit,other);
}
int main(){
char c[32];
printf("请输入一行字符:\n");
fgets(c, 32, stdin);
count(c);
return 0;
}
```
阅读全文