stringstream操纵string小总结
2016-07-29 15:04
134 查看
1 split字符串
之前在用C#写代码的时候,用过split函数,可以把一个字符串根据某个分隔符分成若干个字符串数组。在用C++操纵字符串的时候,我一直使用很笨的遍历的方法。为此,我问候过很多次C++标准委员会。直到某一天,我做了一个处理绝对路径的题目。
首先,我要把‘/’作为分隔符,把输入字符串split一下。下面是我的代码:
神奇的是getline函数,此函数配合stringstream使用,就实现了split函数的功能。简直历害!
输出:
123 abc 123.4 one two three four
是不是很好用呢?不过要注意,当我们使用>>来格式化输入数值型变量的时候,后面是不需要跟空格的,而使用>>来格式化输入string或char*的时候,后面一定要跟空格。当然格式化输入string,我们也可以使用getline(ss,s,' ')。一样的效果。
有标准库用的时候,还是要用的,事半功倍!
之前在用C#写代码的时候,用过split函数,可以把一个字符串根据某个分隔符分成若干个字符串数组。在用C++操纵字符串的时候,我一直使用很笨的遍历的方法。为此,我问候过很多次C++标准委员会。直到某一天,我做了一个处理绝对路径的题目。
首先,我要把‘/’作为分隔符,把输入字符串split一下。下面是我的代码:
string inputString("/home/fun/./../code/"); stringstream ss(inputString); string tmp; while(getline(ss,tmp,'/')) { if(tmp.empty()) continue; bulabula; }
神奇的是getline函数,此函数配合stringstream使用,就实现了split函数的功能。简直历害!
2 格式化输入
当我们有一个字符串需要解析的时候,可以使用stringstream。string inputString("123abc 123.4one two three four"); stringstream ss(inputString); string s; int i; double d; ss >> i >> s >> d; cout << i << " " << s.c_str() << " " << d ; while (ss >> s) cout <<" "<<s.c_str(); cout << endl;
输出:
123 abc 123.4 one two three four
是不是很好用呢?不过要注意,当我们使用>>来格式化输入数值型变量的时候,后面是不需要跟空格的,而使用>>来格式化输入string或char*的时候,后面一定要跟空格。当然格式化输入string,我们也可以使用getline(ss,s,' ')。一样的效果。
有标准库用的时候,还是要用的,事半功倍!
相关文章推荐
- stringstream操纵string的方法总结
- stringstream操纵string小总结
- string和stringstream的总结
- string和stringstream用法总结
- Java中的String、StringBuffer和Math类--学习java语言及其网络应用总结
- ASP.NET设置数据格式与String.Format使用总结
- ASP.NET设置数据格式与String.Format使用总结(引)
- ASP.NET设置数据格式与String.Format使用总结
- JavaScript中Stringd对象方法总结
- 代码阅读总结之ASP.NET StartKit TimeTracker(QueryString之改进笔记)
- object对象转换为String的一些总结
- DataFormatString格式化字符串的总结
- string 函数总结
- String分割方法总结
- DotNet 操纵Excel总结之一
- ASP.NET设置数据格式与String.Format使用总结
- C#-string总结
- 个人总结的一些关于String、Function、Array的属性和用法
- String Integer int互转及日期与String的互转,简单实用(个人总结)
- ASP.NET设置数据格式与String.Format使用总结