1. ホーム
  2. c++

[解決済み] カンマで区切られた文字列をstringstreamで区切る方法【重複あり

2022-04-27 20:34:47

質問

<余談
この質問には、すでにここで回答があります :
クローズド 3年前 .

以下のようなコードになりました。

std::string str = "abc def,ghi";
std::stringstream ss(str);

string token;

while (ss >> token)
{
    printf("%s\n", token.c_str());
}

と出力されます。

エービーシー

デフ、ギ

だから stringstream::>> 演算子は、文字列をスペースで区切ることはできますが、カンマで区切ることはできません。上記のコードを修正して、次のような結果が得られるようにする方法はありますか?

入力 : "abc,def,ghi"。

アウトプット :

エービーシー

デフ

ギー

どのように解決するのですか?

#include <iostream>
#include <sstream>

std::string input = "abc,def,ghi";
std::istringstream ss(input);
std::string token;

while(std::getline(ss, token, ',')) {
    std::cout << token << '\n';
}

エービーシー

デフ

ギー