function~分别统计个数
题目描述
编写一函数,由实参传来一个字符串和一个数组,统计此字符串中字母、数字、空格和其它字符的个数,并将结果存入实参传来的数组中。
在主函数中输入字符串以及输出上述结果。
在主函数中输入字符串以及输出上述结果。
输入
一行字符串
输出
统计数据,4个数字,空格分开。
样例输入
!@#$%^QWERT 1234567
样例输出
5 7 4 6
1 #include<stdio.h> 2 3 void count(char *a) 4 { 5 int cha=0,num=0,space=0,other=0; 6 while(*a!='\0') 7 { 8 if( (*a>='a'&& *a<='z' )|| (*a>='A'&& *a<='Z')) 9 cha++; 10 else if(*a>='0' && *a<='9') 11 num++; 12 else if(*a==' ') 13 space++; 14 else 15 other++; 16 a++; 17 } 18 printf("%d %d %d %d",cha,num,space,other); 19 } 20 21 int main() 22 { 23 char a[100]; 24 gets(a); 25 //scanf("%s",a); 26 count(a); 27 return 0; 28 29 }
solution:
1 将结果存入实参传来的数组中
2 将输入的数组,作为参数传进函数中,函数里将该数组从头按照题目要求开始遍历
3 当用scanf形式输入字符串,字符串中有空格就代表字符串结束,即空格之后的字符没有传入函数;
而使用gets形式得到的字符串,会计入空格;
4 统计0到9之间到字符串也应该加单引号