反转字符串里的单词
C++ 中istringstream用法
#include istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。 strstream类同时可以支持C风格的串流的输入输出操作。
istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。 istringstream的构造函数原形如下: istringstream::istringstream(string str); 它的作用是从string对象str中读取字符。
#include<iostream>
#include<sstream> //istringstream 必须包含这个头文件
#include<string>
using namespace std;
int main()
{
string str="aa bbb cccc";
istringstream sin(str); //构造一个字符串输入流
string s;
while(sin>>s) 从输入流中 读入一个字符串 遇到空格时结束
{
cout<<s<<endl;
}
}
/*
aa
bbb
cccc
*/
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
char ss[100],w[100];
while(1)
{
gets(ss);
istringstream sin(ss); //构造一个字符串输入流
while(sin>>w) //从输入流中读入一个字符串 遇到空格时结束
cout<<w<<endl;
}
return 0;
}
/*
ab abc abcd
ab
abc
abcd
*/
题解
class Solution {
public:
string reverseWords(string s) {
istringstream sin(s);//获取被空格截取的字符串
string ans, word;
while(sin>>word){//从输入流中读入一个字符串遇到空格时结束
ans = " " + word + ans;
}
return ans.substr(1, ans.size()-1);
}
};