您的位置:首页 > 其它

AC日记——单词翻转 1.7 27

2016-11-27 09:34 344 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: