物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

C++で任意の文字でstringを分割する方法

std::getlineは名前の通りstreamから1行ごとにstringを得る関数だが、デリミタ(delimiter)を指定することも可能である。分かれば簡単。

std::string str = "a_ab_abc";
std::stringstream ss(str);
std::string item;
std::vector<std::string> vitem;
while(std::getline(ss, item, '_')) {
    vitem.emplace_back(item);
}