c语言 随机输入一个字符串,统计该串中每个数字字符(0,1,2,3,4,5,6,7, 8,9)出现的次数。
考虑:(1)用num[0]来统计字符0的个数,用num[1]来统计字符1的个数......用num[9]来统计字符9的个数。(2)如何实现一个字符串的输入。...
考虑:
(1)用num[0]来统计字符0的个数,用num[1]来统计字符1的个数......用num[9]来统计字符9的个数。
(2)如何实现一个字符串的输入。 展开
(1)用num[0]来统计字符0的个数,用num[1]来统计字符1的个数......用num[9]来统计字符9的个数。
(2)如何实现一个字符串的输入。 展开
5个回答
推荐于2017-09-06 · 知道合伙人教育行家
关注
展开全部
思路:统计字符串中每个数字字符出现的个数可以先定义一个整数数组a大小是10,依次保存0-9字符出现个数,遍历字符串,判断该字符是否是数字字符,如果是对应的数组元素自加1。
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
int i,n,num[10];
gets(a);
n=strlen(a);
for(i=0;i<10;i++){
num[i]=0;
}
for(i=0;i<n;i++)
if(a[i]>='0'&&a[i]<='9')
num[a[i]-'0']++;
for(i=0;i<10;i++)
printf("%d ",num[i]);
return 0;
}
/*
输出:
ads51df0a3df9d87f89ads4fd0f3adsf21sdf47d89f9adsf65as1d2f3asd
2 3 2 3 2 2 1 2 3 4
*/
展开全部
#include<stdio.h>
int main(){
int i,num[10]={0};
char c,s[100];
gets(s);
for(i=0; s[i]; i++){
c=s[i];
if(c>='0' && c<='9')
num[c-48]++;
}
for(i=0; i<10; i++)
printf("%d:\t%d\n",i,num[i]);
}
int main(){
int i,num[10]={0};
char c,s[100];
gets(s);
for(i=0; s[i]; i++){
c=s[i];
if(c>='0' && c<='9')
num[c-48]++;
}
for(i=0; i<10; i++)
printf("%d:\t%d\n",i,num[i]);
}
追问
num[c-48]++;
printf("%d:\t%d\n",i,num[i]);
这两个看不懂
追答
'0'的ASCII码为48,'1'为49,……,因此,'0'-48=0, '1'-48=1, ...,'9'-48=9。
c是char型,存放的是字符'0'~'9'的ASCII码,所以num[c-48]++;,当c='0'时,相当于num[0]++;,当c='1'时,相当于num[1]++;,……。
,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gets(ch)
for(i=0;ch(i)!='\n';i++)
if (ch[i]='0')
num[0]++;
if (ch[I]='1')
num[1]++;
就像这样输下去 最后printf num[0-9]
for(i=0;ch(i)!='\n';i++)
if (ch[i]='0')
num[0]++;
if (ch[I]='1')
num[1]++;
就像这样输下去 最后printf num[0-9]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main(){
char ch;
int num[10]={0},i=0;
do{
ch = getchar();
switch(ch){
case '0':num[0]++;break;
case '1':num[1]++;break;
case '2':num[2]++;break;
case '3':num[3]++;break;
case '4':num[4]++;break;
case '5':num[5]++;break;
case '6':num[6]++;break;
case '7':num[7]++;break;
case '8':num[8]++;break;
case '9':num[9]++;break;
}
} while( ch != '\n' ) ;
while(i<10)
printf( "\nnum[%d]==>%d\n",i++, num[i] );
return 0;
}
字符串输入
char c[100];
scanf("%s",c);
int main(){
char ch;
int num[10]={0},i=0;
do{
ch = getchar();
switch(ch){
case '0':num[0]++;break;
case '1':num[1]++;break;
case '2':num[2]++;break;
case '3':num[3]++;break;
case '4':num[4]++;break;
case '5':num[5]++;break;
case '6':num[6]++;break;
case '7':num[7]++;break;
case '8':num[8]++;break;
case '9':num[9]++;break;
}
} while( ch != '\n' ) ;
while(i<10)
printf( "\nnum[%d]==>%d\n",i++, num[i] );
return 0;
}
字符串输入
char c[100];
scanf("%s",c);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
char a[100];
int num[10]={0};
int i=0;
scanf("%s",a);
while(a[i]!='\0')
{
if(a[i]>'0' && a[i]<'9')
num[a[i]-'0']++;
i++;
}
for(i=0;i<10;i++)
printf("%d的个数为%d\n",i,a[i]);
}
int main()
{
char a[100];
int num[10]={0};
int i=0;
scanf("%s",a);
while(a[i]!='\0')
{
if(a[i]>'0' && a[i]<'9')
num[a[i]-'0']++;
i++;
}
for(i=0;i<10;i++)
printf("%d的个数为%d\n",i,a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询