函式
<cwchar>

wcstok

wchar_t* wcstok (wchar_t* wcs, const wchar_t* delimiters, wchar_t** p);
將寬字串分割為標記
連續呼叫此函式會將 wcs 分割成標記,這些標記是由 delimiters 中的任意寬字元分隔的連續寬字元序列。

首次呼叫時,該函式期望一個 C 寬字串作為 wcs 引數,其第一個字元將用作掃描標記的起始位置。在後續呼叫中,該函式期望一個空指標,並使用前一個標記結束後的位置作為新的掃描起始位置。

這是 strtok ( <cstdlib> ) 的寬字元等效函式,其操作方式類似(有關更多詳細資訊,請參見 strtok ),但請注意,與 strtok 不同,此函式需要一個額外的引數來儲存分詞過程的狀態。

引數

wcs
要截斷的 C 寬字串。
請注意,此字串的內容將被修改並分割成更小的字串(標記)。
或者,可以指定一個空指標,在這種情況下,函式將繼續掃描前一次成功呼叫函式結束的位置。這要求第三個引數 (p) 與該前一次呼叫中的引數相同。
delimiters
包含分隔符寬字元的 C 寬字串。
這些字元可能在不同調用之間有所不同。
p
指向一個wchar_t指標。該函式使用它來儲存型別為wchar_t*的值,其中包含當前分詞序列的狀態。在後續呼叫此函式時,必須傳入相同的指標才能對寬字串的其餘部分進行分詞。

返回值

指向在寬字串中找到的最後一個標記的指標。
如果沒有更多要檢索的標記,則返回空指標。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* 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



另請參見。