满意答案
woknil5201
2013.06.06
采纳率:58% 等级:12
已帮助:5513人
#include
main(){
char c,*str;
int i,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
while(*str){//字符串*str不为空,循环继续;
c=*str;//把从*str数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
*str++;//原字符串数组元素向后一位;
}
for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
字符串就是字符数组,只是表达方式不太一样而已,给你改写一下:
#include
#define N 100 //字符数组最长为100
main(){
char c,str[N];
int i,j,a[10];
for(i=0;i<10;i++)a[i]=0;//静态数组初始化
printf("input a string please:");//提示语句
scanf("%s",str);//输入动态数组定义的字符串
j=0;
while(str[i]&&j
c=str[i];//把从str[]数组中提出的元素赋值给c,用于操作
for(i=0;i<10;i++)
if(i==(int)c-48)//把字符c转化为int数据与i比较'0'的ASCII编码为48,'1','2'……依次为49,50……
a[i]++;//数到某个字符,表示该字符的数组元素加1;
j++;//原字符串数组元素向后一位;
}
for(i=0;i<10;i++)
printf("\n\t%d\t%d",i,a[i]);//打印
getch();
}
10分享举报