服务器之家

服务器之家 > 正文

stringstream操纵string的方法总结

时间:2021-04-22 15:16     来源/作者:C语言教程网

1 split字符串

之前在用C#写代码的时候,用过split函数,可以把一个字符串根据某个分隔符分成若干个字符串数组。在用C++操纵字符串的时候,我一直使用很笨的遍历的方法。为此,我问候过很多次C++标准委员会。直到某一天,我做了一个处理绝对路径的题目。

首先,我要把‘/'作为分隔符,把输入字符串split一下。下面是我的代码: 

?
1
2
3
4
5
6
7
8
string inputString("/home/fun/./../code/");
stringstream ss(inputString);
string tmp;
while(getline(ss,tmp,'/'))
{
    if(tmp.empty())  continue;
    bulabula;      
}

神奇的是getline函数,此函数配合stringstream使用,就实现了split函数的功能。简直历害!

2 格式化输入

当我们有一个字符串需要解析的时候,可以使用stringstream。

?
1
2
3
4
5
6
7
8
9
10
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的方法总结全部内容了,希望大家多多支持服务器之家~

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部