分析:对字符串要处理,判断每一个元素是数字还是字母,在把字符数字变成整型数字,在打印相应数量的字母。
#include <stdio.h>
#include <string.h>
#define max 100
int f(char a){
return a-48;
}
int main(){
int m,n,j,i,num[max],x;
char ch[max];
gets(ch);
n=strlen(ch);
for(i=0;i<n;i++){//用num数组来记录每一个字符的类型会方便点
if(ch[i]>='0'&&ch[i]<='9')num[i]=1;//如果为数字就为一
} //字母就为零
for(i=0;i<n; ){
// char temp=ch[i];
if((i+1)==n||num[i+1]==0){
printf("%c",ch[i]);//要么是最后一个,要么是后面是字母
i++; //跳转到下一个字符
}
else if(num[i+1]==1){
int s=0,sum=0;
for(j=i+1;j<n;j++){
if(num[j]==1)s++;//统计有多少个数字字符
if(num[j]==0)break;//遇到字母就跳出
}
for(x=i+1;x<i+1+s;x++){
sum=sum*10+f(ch[x]);//将字符转换成数字
}
for(j=0;j<sum;j++){
printf("%c",ch[i]);//打印字符
}
i+=(s+1);//跳转到下一个字符
}
}
return 0;
}