C語言中的 strtok() 是什麼函式?


strtok() 函式是<string.h>標頭檔案的一部分#include <string.h>

strtok()函式的語法如下:

char* strtok(char* string, const char* limiter);

輸入字串string及分隔符limiter。strtok()會根據分隔符將字串分解為幾個部分。

我們可以從strtok()得到一系列字串。然而,該函式返回一個字串,因為在呼叫strtok(input, limiter)後,它會返回第一個部分。

但是,我們必須繼續反覆呼叫該函式,在輸入字串為NULL時,直到得到NULL。我們一般先呼叫strtok(NULL, delim),直到返回NULL為止。

示例

以下為strtok() 函式的C程式:

 線上演示

#include <stdio.h>
#include <string.h>
int main() {
   char input_string[] = "Hello Tutorials Point!";
   char token_list[20][20];
   char* token = strtok(input_string, " ");
   int num_tokens = 0; // Index to token list. We will append to the list
   while (token != NULL) {
      strcpy(token_list[num_tokens], token); // Copy to token list
      num_tokens++;
      token = strtok(NULL, " "); // Get the next token. Notice that input=NULL now!
   }
   // Print the list of tokens
   printf("Token List:
");    for (int i=0; i < num_tokens; i++) {       printf("%s
", token_list[i]);    }    return 0; }

輸出

執行以上程式後,將生成以下結果:

Token List:
Hello
Tutorials
Point!

輸入字串為“Hello Tutorials Point”,我們試圖用空格對其進行標記化。

我們使用 strtok(input, " ") 來獲取第一個部分。這裡的引號是分隔符,是一個單一字元的字串!

之後,我們繼續使用 strtok(NULL, " ") 來獲取標記,並且在從 strtok() 中獲取到 NULL 時結束迴圈。

更新於:2021年9月3日

959次訪問

開啟您的職業生涯

完成課程,獲得認證

開始學習
廣告