Strtok什么意思

strtok 是 C 語言中的一個函式,用於將一個字元串按照分隔設定進行分解。這個函式的原型通常如下所示:

char *strtok(char *str, const char *delim);

strtok 函式的作用是將 str 參數指定的字元串按照 delim 參數指定的分隔設定進行分解,返回下一個子字元串的指針。如果 str 中有分隔設定,strtok 將會返回第一個分隔設定之前的子字元串。

strtok 函式的工作方式是「貪婪」的,它會儘可能多地匹配分隔設定,並將匹配到的分隔設定之前的子字元串返回。如果 str 參數中沒有找到任何分隔設定,strtok 將會返回 NULL。

strtok 函式通常用於解析命令行參數、檔案路徑或者其他需要按照分隔設定分解字元串的場景。

下面是一個簡單的例子,展示了如何使用 strtok 函式將一個字元串按照空格分隔設定進行分解:

#include <stdio.h>
#include <string.h>

int main() {
    char *str = "Hello World";
    char *delim = " ";
    char *token;

    token = strtok(str, delim); // 取第一個子字元串
    while (token != NULL) {
        printf("%s\n", token);
        token = strtok(NULL, delim); // 取下一個子字元串
    }

    return 0;
}

在這個例子中,strtok 函式第一次調用時,str 參數指向整個字元串 "Hello World",delim 參數指向空格分隔設定。strtok 返回 "Hello"。在第二次調用時,strtok 函式的 str 參數被設定為 NULL,它會從上次停止的地方繼續分解字元串,返回 "World"。這個循環會一直繼續,直到 strtok 返回 NULL,表示沒有更多子字元串可以分解。