以下の内容はhttps://toburau.hatenablog.jp/entry/2021/03/25/000000より取得しました。


std::string には split が無い

最近、paizaのスキルチェック問題で文字列処理をC#で書いていたので、久しぶりにC++で書こうとしてけっこう戸惑った。
ある文字列を特定の文字で区切って分割するという処理で、C#ならば、String.Splitメソッドで簡単に書ける。

string s = "test1-test2-test3";
string[] subs = s.Split('-');

同じようにC++でも書こうとしたが、std::string には Split のような文字列分割関数が無かった。
なので、findとsubstrを使って書いた。

string s = "test1-test2-test3";
string::size_type offset = 0; 
while(1) {
    auto pos = s.find('-', offset);
    if(pos == std::string::npos) {
        cout << s.substr(offset);
        break;
    }
    cout << s.substr(offset, pos-offset) << endl;
    offset = pos + 1;
}

こういうのはすぐにパッと書けないといけないのに、思ったよりも時間がかかってしまった。




以上の内容はhttps://toburau.hatenablog.jp/entry/2021/03/25/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14