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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/163017.html