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 時結束迴圈。
廣告