给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
代码:
#include <iostream>
#include <stack>
using namespace std;
int main(int argc, const char * argv[]) {
stack<char*> myset;
char * line = new char[100];
for(int i = 0;i < 100;i++)
line[i]=‘\0’;
cin.getline(line, 99);
for(int i = 0; line[i]!=‘\0’;i++)
{
int j = 0;
for(j = i;line[j]!=‘\0’;j++)
{
if(line[j] == ‘ ‘)
break;
}
char *temp = new char[100];
for(int k= 0;k < 100;k++)
temp[k]=‘\0’;
for(int k = 0;k<j-i;k++)
temp[k]=line[i+k];
myset.push(temp);
i = j;
}
char *temp = myset.top();
cout<<temp;
myset.pop();
while (!myset.empty()) {
temp = myset.top();
cout<<” “<<temp;
myset.pop();
}
}