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次访问

开启您的职业生涯

完成课程,获得认证

开始学习
广告
© . All rights reserved.