【解決方法】空の文字列で文字列をトークン化する

[ad_1]

この文字列があります:

T;150;;cha;;22052024;Glo snc;;;;

トークン化する必要がありますが、最初の文字列は T、次に 150、次に Cha、
でも私はしたい:

T 150 と空の文字列であり、cha ではありません。どうすればよいですか?

私が書いた:

CString strToken = str_line.Tokenize(_T(";"), nTokenPos);
strToken = str_line.Tokenize(_T(";"), nTokenPos);

私が試したこと:

このコードを使用しようとしましたが、空の文字列を読み取ることができません。

解決策 1

解決策 2

簡単な解決策は、空のトークンも認識する独自の関数を作成することです。 次のようになります。

C++
CString MyTokenize(CString& source, const LPCWSTR& delimeter, int& first)
{
    CString token;
    int count, end = source.Find(delimeter, first);

    if (end != -1) {
        count = end - first;
        token = source.Mid(first, count);
        first = end + 1; // next token
    }
    else {
        count = source.GetLength() - first;
        token = source.Mid(first, count);
        first = -1;    // last token
    }
    return token;
}

[ad_2]

コメント

タイトルとURLをコピーしました