strtok_r ()- 令牌化字符串 (可重新启动)

格式

#include <string.h>
char *strtok_r(char *string, const char *seps,
               char **lasts);

语言级别

XPG4

线程安全

语言环境敏感

此函数的行为可能受当前语言环境的 LC_CTYPE 类别影响。 有关更多信息,请参阅 了解 CCSID 和语言环境

描述

此函数是 strtok()的可重新启动版本。

strtok_r() 函数将 string 作为零个或多个标记的序列读取,并将 seps 作为充当 string中标记的定界符的字符集。 string 中的标记可以由 seps中的一个或多个定界符分隔。 自变量 持续 指向用户提供的指针,该指针指向 strtok_r() 函数继续扫描同一字符串所需的存储信息。

在第一次调用给定空结束的 stringstrtok_r() 函数时,它会在 string中搜索第一个标记,从而跳过前导定界符。 它返回指向第一个令牌的第一个字符的指针,在返回的令牌后立即将空字符写入 string ,并更新 持续 点的指针。

要从 string中读取下一个令牌,请使用 NULL string 自变量调用 strtok_r() 函数。 这将导致 strtok_r() 函数在先前令牌字符串中搜索下一个令牌。 原始 string 中的每个定界符都将替换为空字符,并且将更新 持续 点的指针。 seps 中的定界符集可能因调用而异,但 持续 必须与先前调用保持不变。 当 string中没有标记时,将返回 NULL 指针。

返回值

首次调用 strtok_r() 函数时,它会返回指向 string中的第一个标记的指针。 在稍后使用相同令牌字符串的调用中, strtok_r() 函数返回指向该字符串中下一个令牌的指针。 当没有更多标记时,将返回 NULL 指针。 所有标记均为空结束。

相关信息