# 1012题-[编程入门]字符串分类统计-题解(C语言描述)
------------
本题解的最终解释权归本人所有,主要用于本班上同学更好的掌握本题的解题方法,同时更好的理解和掌握方法。
------------
### 题目描述
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
------------
### 输入
一行字符
------------
### 输出
统计值
------------
### 样例输入
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
------------
### 样例输出
23 16 2 4
------------
### 题目解释
这一道题主要的重点还是怎么样将输入的字符串将每一个字符调用出来进行判断,然后再对判断进行计数操作;还有就是用什么样的方法进行判断。首先我们每个字符的调用我们使用getchar()函数[[1]][https://baike.baidu.com/item/getchar%28%29/6876946?fr=aladdin]来进行调用字符;使用ASCII码值来判断各类字符的个数。
[https://baike.baidu.com/item/getchar%28%29/6876946?fr=aladdin]: http://https://baike.baidu.com/item/getchar%28%29/6876946?fr=aladdin "getchar函数"
------------
### 代码
```c
#include "stdio.h"
int main(int argc, char* argv[])
{
char n;//定义一个字符型变量
int p=0,b=0,c=0,d=0,i;//定义四个用于计数的整型变量,一个用于循环的整型变量
for(i=1;n!='\n';i++)
{
n=getchar();//用于调用存入的字符转化为ASCII码值且赋值给n进行判断
if((n>=97 && n<=122) || (n>=65 && n<=90))//判断大小写英文字母
{
p++;//进行计数操作
}
else if(n>=48 && n<=57)//判断数字
{
b++;//进行计数操作
}
else if(n==32)//判断空格
{
c++;//进行计数操作
}
else//判断其他字符项
{
d++;//进行计数操作
}
}
printf("%d %d %d %d",p,b,c,d-1);//输出各类计数的值;
//注:由于循环结束的条件是!='\n',在结束时还会进行一次其他字符的判断,所以为了保证数据的准确性,进行d-1的操作
return 0;
}
```
------------
### 写后感
这个代码的编写自己也弄了很久,主要还是对单个字符的调用还不是很懂,还不熟练getchar的用法,但是在经过借鉴其他人的题解之后,自己也总算是基本了解了它的用法。
------------
编写者:Believe_CH(廖智贤)
0.0分
2 人评分