|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为了更好的保存和处理汉字,我在程序中统一使用宽字符“wchar_t”来代替“char”,
现在需要分割 wchar_t * 字符串,但是使用方法 wcstok 以后报错,不能正常使用。DEBUG也查看不了具体错误,只有“分段错误”。
求助大佬们!
- wchar_t *data = malloc(sizeof(wchar_t *)), *tmp;
- *data =0;
- data = ...;
- tmp = wcstok(data, L",");
- tmp = wcstok(NULL, L",");
- ...
复制代码
- #include <stdio.h>
- #include <string.h>
- #include <locale.h>
- int main(void) {
- // 例如给data分配100字符空间,应该这样:
- // wchar_t *data =malloc(sizeof(wchar_t) * 100);
- // 而不是:
- // wchar_t *data = malloc(sizeof(wchar_t *));
- // 这里我为了省事用下面的:
- wchar_t data[] = L"宽字符,123,456";
- wchar_t* tmp;
- setlocale(LC_ALL, "chs"); // 设置简体中文区域,否则不能输出中文
- tmp = wcstok(data, L",");
- while (tmp) {
- wprintf(L"%ls\n", tmp);
- tmp = wcstok(NULL, L",");
- }
- return 0;
- }
复制代码
|
|