题目:给出一串包含A-Z,数字,*和空格的字符串,如果是!则输出换行,如果是b则输出空格,如果字符前有一个数字,则输出数字个字符,如果字符前有连续多个数字,则输出多个数字和的个数的字符。
思路:主要是注意多个连续数字的情况,将前面多个数字相加。
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 6 int main() 7 { 8 //freopen("input.txt","r",stdin); 9 string s; 10 int i,j,k; 11 char b; 12 while(getline(cin,s)) 13 { 14 if(s.length()==0) 15 { 16 cout<<endl; 17 continue; 18 } 19 k=s[0]-‘0‘; 20 for(i=1;i<s.length();i++) 21 { 22 if(s[i]>=‘0‘&&s[i]<=‘9‘) 23 { 24 if(k<0) 25 k=0; 26 k=k+s[i]-‘0‘; 27 } 28 else if((s[i]>=‘A‘&&s[i]<=‘Z‘)||s[i]==‘*‘) 29 { 30 while(k--) 31 cout<<s[i]; 32 } 33 else if(s[i]==‘b‘) 34 while(k--) 35 cout<<" "; 36 else 37 cout<<endl; 38 } 39 cout<<endl; 40 } 41 return 0; 42 } 43
时间: 2024-10-31 21:32:28