17. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
时间: 2023-11-23 14:55:04 浏览: 85
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
这是一个统计输入字符中各种类型字符个数的程序。可以通过循环读取输入的字符,然后根据字符的ASCII码值判断其属于哪种类型的字符,最后统计各种类型字符的个数并输出。其中,英文字母的ASCII码值范围为65-90和97-122,数字的ASCII码值范围为48-57,空格的ASCII码值为32,其他字符即为除英文字母、数字和空格以外的字符。下面是两种不同的实现方法:
方法一:
```
#include <stdio.h>
int main() {
int numbers=0,words=0,others=0,space=0,n;
printf("Please enter a paragraph:\n");
while ((n = getchar())!= '\n') {
if (n >= '0' && n <= '9') {
numbers++;
} else if (n == ' ') {
space++;
} else if (n >= 'a' && n <= 'z' || n >= 'A' && n <= 'Z') {
words++;
} else {
others++;
}
}
printf("numbers:%d\nspace:%d\nwords:%d\nothers:%d\n", numbers, space, words, others);
return 0;
}
```
方法二:
```
#include <stdio.h>
int main(){
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\n'){
if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++;
else if(c==' ') space++;
else if(c>='0'&&c<='9') digit++;
else other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d",letters,space,digit,other);
return 0;
}
```
阅读全文