C语言中的strtok_r()函数是什么?
C语言中的strtok_r()函数
strtok_r()函数类似于strtok()函数。唯一的主要区别是_r,称为可重入函数。
可重入函数是在执行过程中可以被中断的函数。此类型的函数可用于恢复执行。
因此,可重入函数是线程安全的,这意味着它们可以被线程安全地中断,而不会造成任何危害。
strtok_r()函数有一个额外的参数称为上下文。以便函数可以从正确的位置恢复。
语法
strtok_r()函数的语法如下
// header file to be included #include <string.h> // Function prototype char *strtok_r(char *string, const char *limiter, char **context);
strtok_r()函数示例
以下是strtok_r()函数使用说明的C语言程序−
#include <stdio.h>
#include <string.h>
int main() {
char input_string[] = "Hello Tutorials Point";
char token_list[20][20];
char * context = NULL;
char * token = strtok_r(input_string, " ", & context);
// Index to token list. We will append to the list
int num_tokens = 0;
while (token != NULL) {
strcpy(token_list[num_tokens], token); // Copy to token list
num_tokens++;
token = strtok_r(NULL, " ", & context);
}
// 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP