1. ホーム
  2. c++

[解決済み] C++ std::string を ";" などのトークンを使って分割する [重複] [重複

2022-03-02 15:13:47

質問

<ブロッククオート

重複の可能性があります。
C++で文字列を分割する方法は?

C++で文字列を分割する最適な方法とは?文字列は、.NETで区切られた単語で構成されていると考えることができます。

また、Boostもセキュリティ上の問題から、オープンソースでの使用はできません。

今、私が持っている最善の解決策は

string str("denmark;sweden;india;us");

上記のstrは、文字列としてvectorに格納される必要があります。

ご指摘ありがとうございます。

解決方法は?

私は std::getline() が最もシンプルであることが多い。オプションのデリミタ・パラメータは、単に"line"を読み取るためだけではないことを意味します。

#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> strings;
    istringstream f("denmark;sweden;india;us");
    string s;    
    while (getline(f, s, ';')) {
        cout << s << endl;
        strings.push_back(s);
    }
}