算法笔记2022.09.11

112 阅读1分钟

反转字符串里的单词

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);
    }
};