思路:统计字符串中每个数字字符出现的个数可以先定义一个整数数组a大小是10,依次保存0-9字符出现个数,遍历字符串,判断该字符是否是数字字符,如果是对应的数组元素自加1。
参考代码:
#include
#include
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;iif(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
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]);
}
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]
#include
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
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]);
}