题目描述
将一句话的单词进行倒置,标点不倒置。
比如 I like beijing. 经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
示例1
输入
I like beijing.
输出
beijing. like I
代码实现:
#include<string>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
vector<string> v;
string s;
while (cin >> s)
{
v.push_back(s);
if (*(s.end() - 1) == '.')
{
break;
}
}
int size = v.size();
cout<< v[size - 1];
for (int i = size - 2; i >= 0; i--)
{
printf(" %s", v[i].c_str());
}
system("pause");
return 0;
}
用栈的方法做:
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
stack<string> st;
string s;
while (cin >> s)
{
st.push(s);
if (*(s.end() - 1) == '.')//遇到.结束输入
{
break;
}
}
cout << st.top();
st.pop();
int size = st.size();//这块的size是st.size()//先输出最后一个
while (size)
{
cout << " " << st.top();
st.pop();
size--;
}
system("pause");
return 0;
}