1205 单词翻转
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 青铜 Bronze
题解
题目描述 Description
给出一个英语句子,希望你把句子里的单词顺序都翻转过来输入描述 Input Description
输入包括一个英语句子。输出描述 Output Description
按单词的顺序把单词倒序输出样例输入 Sample Input
I love you样例输出 Sample Output
you love I数据范围及提示 Data Size & Hint
简单的字符串操作
思路
两种解法,第一种比较常理化,第二章特殊
代码
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char s[1001]={0};
gets(s);
int len,k;
len=strlen(s);
k=len;
int i=len-1;
while(i--)
{
if(s[i]==' ')
{
for(int j=i+1;j<k;j++)
{
cout<<s[j];
}
cout<<" ";//这里别忘记
k=i;
}
}
for(int m=0;m<k;m++)
cout<<s[m];
cout<<endl;
return 0;
}
代码
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a,s;
s="";
while(cin>>a)
{
s=a+" "+s;
}
cout<<s;
return 0;
}
这段代码就是不断累加s然后累加过程也就逆向了。但是我们自己运行这段代码的时候需要输入完成后enter,再ctrl+z(linux是ctrl+d)再enter才能输出。否则不能输入结束
windows认为,如果缓冲中还有其它内容,ctrl+z不表示输入结束,仅代表当前行输入结束,只在单独一个ctrl+z的时候才表示输入结束。