通过代码
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<list>
#include<string>
using namespace std;
int main() {
string str;
getline(cin,str);
list<string> lst;
string tmp="";
int i;
for(i=0;i<=str.length();i++) {
if(str[i]==' ' || i==str.length()){
lst.push_back(tmp);
tmp="";
} else {
tmp=tmp+str[i];
}
}
int num=lst.size();
while(num!=1) {
cout<<lst.back()<<' ';
lst.pop_back();
num--;
}
cout<<lst.back();
}
知识点
<string>
的使用
读带空格的输入并按空格拆分成一个一个的字符串
方法: getline()
将输入按行读取,遇到回车符号停止读入,可以将空格按字符string类型读取
另:
- 对于
cin>>noskipws>>str
,会将回车、空格、制表符当成同一个东西(whitespace),不利于判断输入回车后终止输入(会碰到空格就判断为终止) - 对于
cin.get()
,读入的是char类型,的确可以分辨回车、空格,但使用它的时候遇到了不能用char类型变量接收空格的问题(char类型应该是可以接收空格的,还能打印出对应的ascii值,这次不知道为什么没接收到…)