首页 > 代码库 > AC日记——单词翻转 1.7 27

AC日记——单词翻转 1.7 27

27:单词翻转

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

输入一个句子(一行),将句子中的每一个单词翻转后输出。

输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow

 

思路:

  大模拟;

 

来,上代码:

#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int len_all,len[501],num,now;char word[501],word_all[501][50];int main(){    gets(word);    len_all=strlen(word);    while(now<len_all)    {        if(word[now]== )        {            while(word[now]== ) now++;        }        else        {            num++;            while(word[now]!= )            {                if(now>=len_all) break;                word_all[num][len[num]++]=word[now++];            }        }    }    for(int i=1;i<=num;i++)    {        int l=0,r=len[i]-1;        while(l<r) swap(word_all[i][l++],word_all[i][r--]);    }    now=0;    for(int i=0;i<len_all;i++)    {        if(i==0||(word[i-1]== &&word[i]!= ))        {            printf("%s",word_all[++now]);        }        if(word[i]== ) putchar( );    }    return 0;}

 

AC日记——单词翻转 1.7 27