1

WideChar 文字列を配列に分割しようとしています。これが私がこれを行っている方法です:<>

WCHAR* Message = _T("This is a sample text"):
wchar_t *pwc;
CStringArray Command;
pwc = wcstok(Message, L" ");
int Count = 0;
while (pwc != NULL) {
    pwc = wcstok(NULL, L" ");
    Command.Add(pwc);
    Count++;
}

for (int i = 0 ; i <= Count ; i++)
{
    AfxMessageBox(Command[i]);
}

問題は、最終結果の配列に「This」がないことです。何が問題なの
ですか?

4

2 に答える 2

2

呼び出しをループ内のCommand.Addへの割り当ての前に移動する必要があります。現状では、最初の を実行する前に 2 番目のトークンに移動しています。pwcAdd

于 2013-09-29T13:55:47.540 に答える
1

あなたの情報源に問題はありません。すべての文字列コンポーネントが完全に印刷されています。

ここに私の完全な作業コードがあります:

#include "stdafx.h"
#include <wchar.h>

int main(int argc, char *argv[])
{
    wchar_t wcs[] = L"This is a sample string";
    wchar_t *pwc;
    pwc = wcstok(wcs, L" ");
    while (pwc != NULL) {
        wprintf(L"%ls\n", pwc);
        pwc = wcstok(NULL, L" ");
    }
}
于 2013-09-29T13:38:08.927 に答える