#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int N,n,i,j,k;
int count=0;//记录空格分开的字符串中字符个数
char a[1000];
cin>>N;
getchar();
//用以吸收输入N后的换行,避免影响后续字符串的读取
while(N--)
{
gets(a);//用gets()读取含空格的字符串
n=strlen(a);//计算字符串长度,包含在cstring头文件中
for(i=0;i<=n;i++)
{
if(i==n)//处理最后一串被分隔开的字符串
{
for(j=i-1;j>=i-count;j--)
cout<<a[j];
cout<<endl;
//刚开始将count放在此处(1)
//发现第2,3....次第二组字符串前会多出一个空格导致错误
}
if(a[i]!=' ')
count++;
else if(a[i]==' ')
{
for(j=i-1;j>=i-count;j--)
cout<<a[j];
cout<<' ';
count=0;//处理完一串字符串后不要忘记将count重置
}
}
count=0;
//(2)将count重置放在循环最后或最前更不容易产生错误
}
return 0;
}
思路
将空格分隔开的小串字符串单独倒置输出,留心不要忘记中间空格的输出和最后换行。(用count记录每次要处理的小字符串中字符个数)