1. 题目源地址:http://acm.hdu.edu.cn/showproblem.php?pid=1062
2. 解题思路:
这道题算是字符串中的水题,题意很简单,输入一行字符串,每个单词按照逆序输出。很容易想到利用空格来控制输出。
3. 解题代码:
//HOJ--1062:Text Reverse
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
int caseNum;
char str[1005];
int len,i,j,start,end,sum;
cin>>caseNum;
getchar();
while(caseNum--)
{
gets(str);
len=strlen(str);
//计算出一共有多少个空格
sum=0;
for(i=0;i<len;i++)
{
if(str[i]==' ')
sum++;
}
if(sum==0)//如果空格数等于0
{
for(i=len-1;i>=0;i--)
cout<<str[i];
cout<<endl;
}
else//如果空格数不等于0
{
int s=0;//记录当前遇到的空格数
start=0;
for(i=0;i<len;i++)
{
if(str[i]==' ')
{
s++;
end=i;
for(j=end-1;j>=start;j--)
cout<<str[j];
cout<<" ";
start=i+1;
if(s==sum)//遇完最后一个空格后,剩余的倒序输出
{
for(j=len-1;j>=start;j--)
cout<<str[j];
cout<<endl;
}
} //if
}//for
}//else
}//while
return 0;
}