📅  最后修改于: 2023-12-03 15:14:03.305000             🧑  作者: Mango
wcstok()
是C++中的一个字符串切割函数,用于将宽字符串(wchar_t类型)按照指定的分隔符进行分割。该函数类似于strtok()
函数,但专门用于宽字符。
wchar_t* wcstok(wchar_t* str, const wchar_t* delimiter, wchar_t** context);
str
: 需要切割的宽字符串,调用该函数时会改变该指针指向的字符串。delimiter
: 分隔符,用于确定切割的位置。context
: 保存切割位置的上下文,通常为NULL。返回切割后的子字符串的指针。如果没有找到分隔符,函数返回NULL。
下面是一个使用wcstok()
函数的示例:
#include <iostream>
#include <cwchar>
int main() {
wchar_t str[] = L"This,is,a,test";
wchar_t* token;
// 切割第一个子字符串
token = wcstok(str, L",");
while (token != NULL) {
std::wcout << token << std::endl;
// 继续切割剩余的子字符串
token = wcstok(NULL, L",");
}
return 0;
}
输出:
This
is
a
test
在上述示例中,我们首先定义了一个宽字符串str
,然后使用wcstok()
函数按,
分割字符串。在第一次调用wcstok()
时,函数会返回第一个子字符串This
,然后通过循环继续切割剩余的子字符串,直到遇到分割符","
不存在为止。
需要注意的是,在调用wcstok()
函数时,需要提供字符串的可修改副本,因为该函数会修改原始字符串。