反转诗句

总时间限制:
1000ms
内存限制:
65536kB
描述
你手中有些从右向左读的诗句,比如“rose red red a like is luve my O”。
现在为了阅读这些美妙的诗句,你要把这些语句反转成正常的从左到右,即“O my luve is like a red red rose”。
输入
每一行为原来从右向左读的诗句S。该诗句中不包含任何标点符号,单词间以空格隔开。每条诗句最多包含 50个单词,每个单词最多包含50个字符。
输出
每一行为正常的从左到右读的诗句。
样例输入
rose red red a like is luve my O
June in sprung newly That's
melodie the like is luve my O
tune in played sweetly That's
样例输出
O my luve is like a red red rose
That's newly sprung in June
O my luve is like the melodie
That's sweetly played in tune

代码:

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a[3500]="";
    while(gets(a)){
        int n=strlen(a);
        //思想:整体倒序遍历,每个单词正序遍历输出
        for(int i=n-1;i>=0;i--){
            //根据空格分割单词,正序遍历输出每个单词
            if(a[i]==' '){
                for(int j=i+1;a[j]!=' '&&a[j]!='\0';j++){
                    cout<<a[j];
                }
                cout<<" ";
            }
        }
        //句子的开头第一个单词需要输出
        for(int i=0;a[i]!=' '&&a[i]!='\0';i++){
            cout<<a[i];
        }
        cout<<endl;
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值