从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制数字的个数并输出。 怎么编啊
从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制数字的个数并输出。就是比如键盘输入 2 4 2 4 3 4 3
统计出2出现2次,4出现3次,3出现2次。,怎么编啊
/* 题目:从键盘上输入一个字符串,假定字符串的长度小于50,试分别统计每一种十进制数字的个数并输出 */ #include <stdio.h> void main(int argc, char *argv[]) { char input[51];//用来存储输入的数字字符串 printf("请输入您需要统计的字符串:\n"); scanf("%s",input); /*录入需要统计的字符串*/ int i=0;//控制循环次数 int num[10]={0,0,0,0,0,0,0,0,0,0};//存储每个数字字符出现的次数 int numChar;//存储出现的字符 while(input[i]!='\0')//控制循环的结束:当出现空字符的时候结束 { numChar=input[i]-48;//得到出现的字符 num[numChar]++; i++; } /*得到我们出现的次数存储在num数组中*/ for(i=0;i<10;i++) { printf("%d出现的次数为:%d\n",i,num[i]); } /*按照格式输出结果*/ }
/****************** *count: 这个函数就是用来达到你那个目的 *@__numbers: 这个就是你说的输入的那一串字符 *@__count: 这是一个指针,其实就是一个地址,你调用时定义一个数组(你打算用来存放计数结果),把这数组的地址传过来。 *@__count_len:你那个数组多长啊,应该是10个吧,每个元素用来存放出现次数 *************************************/ void count(const char *__numbers, int *__count, int __count_len) { /*这是一个标准c库函数,用来清空buffer*/ memset(__count, 0, __count_len); while(*__numbers){ /*判断这个字符是不是数字,是的话就在记录这个数字出现次数的地方加1,同时指针指向下一个要检测的字符*/ if(isdigit(*__numbers)) __count[*__numbers - '0']++; __numbers++; } }