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之间到字符串也应该加单引号

 

posted on 2022-12-11 14:19  罗小罗佳油  阅读(38)  评论(0编辑  收藏  举报