Я пытаюсь разделить строку 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» в моем массиве окончательных результатов
В чем дело ?
Вы должны переместить звонок на Command.Add
до назначения pwc
в цикле — когда вы стоите, вы переходите ко второму токену, прежде чем делать первый Add
,
У меня нет проблем с вашим источником. Все строковые компоненты печатаются отлично.
Вот мой полный рабочий код:
#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" ");
}
}