stringstream操纵string的方法总结
1 split字符串 之前在用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的方法总结全部内容了,希望大家多多支持编程小技巧~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |