程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> stringstream操縱string的辦法總結

stringstream操縱string的辦法總結

編輯:關於C++

stringstream操縱string的辦法總結。本站提示廣大學習愛好者:(stringstream操縱string的辦法總結)文章只能為提供參考,不一定能成為您想要的結果。以下是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的辦法總結全部內容了,希望大家多多支持~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved