For each list of words, output a line with each word reversed without changing the order of the words.
This problem contains multiple test cases!
The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.
The output format consists of N output blocks. There is a blank line between output blocks.
Input
You will be given a number of test cases. The first line contains a positive integer indicating the number of cases to follow. Each case is given on a line containing a list of words separated by one space, and each word contains only uppercase and lowercase letters.
Output
For each test case, print the output on one line.
Sample Input
1
3
I am happy today
To be or not to be
I want to win the practice contest
Sample Output
I ma yppah yadot
oT eb ro ton ot eb
I tnaw ot niw eht ecitcarp tsetnoc
Source: East Central North America 1999, Practice
出了六次:Segmentation Fault:分隔错误
数组别开太大,注意输出格式:
Ac代码:
#include<bits/stdc++.h>
using namespace std;
const int MAX=1e4+10;
string ss[MAX];
char s[MAX];
int main(){
int n;cin>>n;
while(n--){
int m;
cin>>m;
getchar();
for(int i=0;i<m;i++){
gets(s);
ss[i]=s;
//cout<<ss[i]<<endl;
}
stack<string>sta;
string strt;
for(int i=0;i<m;i++){
//int t=strlen(s[i]);
for(int j=ss[i].length()-1;j>=0;j--){
if(ss[i][j]!=' '){
strt+=ss[i][j];
}
else{
sta.push(strt);
strt.clear();
}
if(j==0){
sta.push(strt);
strt.clear();
}
}
cout<<sta.top();
sta.pop();
while(!sta.empty()){
cout<<" "<<sta.top();
sta.pop();
}
cout<<endl;
}
if(n!=0)
cout<<endl;
}
return 0;
}