程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> C++中用substr()函數消除前後空格的解決方法詳解

C++中用substr()函數消除前後空格的解決方法詳解

編輯:C語言基礎知識
最近做了個題目,遇到了要將字符串前後空格消除的細節問題。在Java中好像有一個字符串函數為trim()可以消除字符串後的空格。對於c++,查了一下,可以引用一個c++標准庫Boost,可以輕松解決,但要下載,設置環境變量,因而沒去弄。當然還可以用正則表達式進行匹配,但似乎都大材小用。不如就用substr()函數,而且string有find_last_not_of,find_first_not_of等等屬性,已經夠我們解決問題了。
代碼如下:

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
//從文件中讀取每一行,然後消除前後空格,使其連成一個新的字符串。
int main()
{
    string newstring = "";
    vector<string> str;
    ifstream fin("a.txt");
    string line;
    while (getline(fin, line))
        str.push_back(line);
    for (unsigned i = 0; i < str.size(); i++)
    {
        newstring += str[i].substr(str[i].find_first_not_of(" "),str[i].find_last_not_of(" ")-str[i].find_first_not_of(" ")+1);
    }
    cout<<newstring<<endl;
    return 0;
}

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