C ++ Split Wide Char String

Я пытаюсь разделить строку 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» в моем массиве окончательных результатов
В чем дело ?

1

Решение

Вы должны переместить звонок на Command.Add до назначения pwc в цикле — когда вы стоите, вы переходите ко второму токену, прежде чем делать первый Add,

2

Другие решения

У меня нет проблем с вашим источником. Все строковые компоненты печатаются отлично.

Вот мой полный рабочий код:

#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" ");
}
}
1

По вопросам рекламы [email protected]