C++拆分宽字符字符串

C++ Split Wide Char String

本文关键字:字符串 字符 拆分 C++      更新时间:2023-10-16

我正在尝试将宽字符字符串拆分为数组,这是我这样做的方式:<>

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"%lsn", pwc);
        pwc = wcstok(NULL, L" ");
    }
}