c++ builder XE4, 10.2 Tokyo / String > 指定の文字以降を取得する


動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)

訂正前 > 値渡しによるコピーが発生

Unit1.cpp
static String getStringFrom(String srcStr, String keyword)
{
    int pos = srcStr.Pos(keyword);
    if (pos < 0) {
        return L""; // error
    }
    return srcStr.SubString(pos, MAXINT); // MAXINT: until last
}

(MAXINTが最後まで、というのはソースリーディング的にはよくない。)

getStringFrom(L"AAA,BBB,CCC,DDD", L"CCC");
の結果は
L"CCC,DDD"
となる。

訂正

@yuba さんのコメントをもとに以下のように訂正します。

Unit1.cpp
static String getStringFrom(const String &srcStr, const String &keyword)
{
    int pos = srcStr.Pos(keyword);
    if (pos < 0) {
        return L""; // error
    }
    return srcStr.SubString(pos, MAXINT); // MAXINT: until last
}

関数の使用コードはそのままです。