istringstream过滤首尾的空字符
来源:互联网 发布:手机淘宝怎么上咸鱼 编辑:程序博客网 时间:2024/05/16 23:02
本文以leetcode上的一道简单算法题(http://oj.leetcode.com/problems/reverse-words-in-a-string/)来说明istringstream在初始化时会过滤掉首尾的空格。
题目大意是将一个string类型的字符串,按逐个单词倒置。string的首尾可能有零个或多个空格,每个单词之间由一个或多个空格分隔。例如:
Given s = " the sky is blue
",
return "blue is sky the
".
输入有可能出现空串:“”,或只包含若干个空格的串:“ ”。
此题如果用C写比较麻烦,用C++的vector<string>和istringstream处理则方便许多。AC的代码如下:
#include<iostream>#include<string>#include<vector>#include<sstream>using namespace std;class Solution {public: void reverseWords(string &s) { vector<string> svec; istringstream iss(s);string str;while(iss>>str)svec.push_back(str);s.clear();vector<string>::reverse_iterator rit;if(!svec.empty()) {for(rit=svec.rbegin();rit!=svec.rend()-1;++rit){s.append(*rit).append(" ");} s.append(*rit);}cout<<s<<"hhhaha"<<endl; }};可以验证,如果s=“ abc def ghi ”,istringstream对象iss接收s后会过滤首尾的空格,
需要注意的是,如果s=“”或s=“ ”,则iss为空,svec也为空。
关于istringstream常见的用法还有另一种情况值得注意,就是从外部文件中按行读取数据:
void read_data ( const string &filename ) {ifstream infile; //文件输入流 string line,str; istringstream iss; //string输入流 infile.open( filename );while( getline( infile,line ) ){ //getline按行读取文件数据 ,line的末尾会保存一个换行符 iss.clear();iss( line ); //ss的末尾也会随之保存一个换行符 while( ss >> str ) {/*具体代码省略*/ /* 注意ss最后会给str一个换行符,如果不希望保留这个换行符,应做相应的删除处理 */}}infile.close();}
0 0
- istringstream过滤首尾的空字符
- [MSSQL]过滤字符串首尾字符
- 非法字符空字符的过滤
- ms sql Server过滤字符串首尾字符
- jQuery Trim去除字符串首尾空字符实现方法
- jQuery Trim去除字符串首尾空字符实现方法
- 字符串流的应用(stringstream\ istringstream ostringstream)
- 字符串流 istringstream 和 ostringstream 的用法
- 字符串流 istringstream 和 ostringstream 的用法
- 字符串流 istringstream 和 ostringstream 的用法
- php过滤数组空字符
- iOS NSString 没有去除首尾空格,换行符,空字符--导致UIlabel不能正确计算换行后的动态高度
- 字符填充的首尾定界符法
- 去除字符串的首尾空格字符
- java中过滤字符串首尾的空格,保留中间空格
- [C++]字符串流 istringstream 和 ostringstream 的用法
- 【day0411 C++】字符串流istringstream和ostringstream的用法
- 【未完待续.....】C++字符串流 istringstream 和 ostringstream 的用法
- POJ 2185 KMP (最小循环模块)
- 最大流-FoldFulkerson算法
- HDU_1042N!(关于阶乘)
- QT串口通信
- 常用上网增强类Chrome扩展
- istringstream过滤首尾的空字符
- Python学习笔记
- 四元数姿态的梯度下降法推导和解读
- 我不会告诉你,你就是一白痴
- 在Eclipse JavaEE中集成maven
- Myeclipse导入已存在的Maven项目
- HDU 1251 统计难题(字典树Trie)
- dispatch_once implement 单例
- LRU缓存设计