#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cctype>
using namespace std;
int main()
{
char s[140];
while(gets(s)!=NULL)
{
if(s[0]==' ')
{
puts("");
continue;
}
int beg=0;
for(int i=0;s[i]!='\0';i++)
{
if(s[i]=='!')
{
printf("\n");
beg=i+1;
continue;
}
if(!isdigit(s[i]))
{
int sum=0;
for(int j=beg;j<i;j++)
sum=sum+(s[j]-'0');
printf("%d",sum);
for(int j=1;j<=sum;j++)
{
if(s[i]=='b')
printf(" ");
else
printf("%c",s[i]);
}
beg=i+1;
}
}
printf("\n");
}
return 0;
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cctype>
using namespace std;
int main()
{
char s[140];
while(gets(s)!=NULL)
{
if(s[0]==' ')
{
puts("");
continue;
}
int beg=0;
for(int i=0;s[i]!='\0';i++)
{
if(s[i]=='!')
{
printf("\n");
beg=i+1;
continue;
}
if(!isdigit(s[i]))
{
int sum=0;
for(int j=beg;j<i;j++)
sum=sum+(s[j]-'0');
printf("%d",sum);
for(int j=1;j<=sum;j++)
{
if(s[i]=='b')
printf(" ");
else
printf("%c",s[i]);
}
beg=i+1;
}
}
printf("\n");
}
return 0;
}
此题只需要知道不能使用while(scanf("%s",s)!=EOF),因为题目中又说输入一行空格,而scanf只能输入一个空格