wcstok
函数 <cwchar>
wchar_t* wcstok (wchar_t* wcs, const wchar_t* delimiters, wchar_t** p);
将宽字符串分割为令牌
对这个函数的调用将wcs分割为令牌,令牌是delimiters(分隔符)任意连续宽字符序列。
在第一次调用时,该函数以一个C宽字符串作为wcs的参数,wcs的第一个字符被用作扫描令牌的起始位置.
在随后的调用中,该函数需要一个空指针,
并使用上一个令牌结束后的位置作为扫描的新开始位置。
这是与
strtok
(<
cstdlib>)等效的宽字符版,并且以类似的方式操作(请参阅
strtok了解更多细节),
但请注意,与strtok不同,此函数接受一个附加参数,其中存储了标记过程的状态。
☲ 参数
wcs
要截断的C宽字符串。
注意,这个字符串被分解成更小的字符串(令牌tokens)。
或者,可以指定一个空指针,在这种情况下,函数继续扫描之前成功调用函数的地方。
这要求第三个参数(p)与前一个调用相同
delimiters
包含分隔符宽字符的C宽字符串。
这些可能因调用的不同而不同.
p
指向
wchar_t指针的指针。
函数使用它来存储类型为
wchar_t*的值,该值包含当前令牌序列的状态。
同样的指针将被传递给后续对该函数的调用,以标记宽字符串的其余部分。
☉ 返回值
一个指向宽字符串中找到的最后一个令牌的指针。
如果没有找到,则返回空指针。
☣ 示例
/* wcstok example */
#include <wchar.h>
int main ()
{
wchar_t wcs[] = L"- This, a sample string.";
wchar_t * pwc;
wchar_t * pt;
wprintf (L"Splitting wide string \"%ls\" into tokens:\n",wcs);
pwc = wcstok (wcs, L" ,.-", &pt);
while (pwc != NULL)
{
wprintf (L"%ls\n",pwc);
pwc = wcstok (NULL, L" ,.-", &pt);
}
return 0;
}
|
输出:
Splitting wide string "- This, a sample string." into tokens:
This
a
sample
string
🍄 另请参阅