Home C&C++函数库 c++ 语法 程序源码 Linux C库

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

🍄  另请参阅



strtok 将字符串分割为令牌(function )
wcscspn 获取宽字符串在另一宽字符串中出现之前的字符长度(function)
wcspbrk 定位宽字符串中的字符(function)

联系我们 免责声明 关于CandCplus 网站地图