📜  函数“strtok_r”的隐式声明; (1)

📅  最后修改于: 2023-12-03 15:07:08.781000             🧑  作者: Mango

隐式声明函数 "strtok_r"

在 C 语言中,函数 strtok_r 用于将字符串分割成几个部分(子串)。

在某些编译环境中,该函数不需要显式地声明即可使用,这就是隐式声明。

以下是一个使用 strtok_r 函数的示例:

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

int main() {
    char str[] = "Hello,World,C,Programming";
    char *token, *rest;
    token = strtok_r(str, ",", &rest);
    
    while (token != NULL) {
        printf("%s\n", token);
        token = strtok_r(NULL, ",", &rest);
    }
    
    return 0;
}

其中,strtok_r 函数的原型如下:

char *strtok_r(char *str, const char *delim, char **saveptr);

参数解释:

  • str:要进行分割的字符串,第一次调用时传入,后续调用不需要传入
  • delim:分割字符串的分隔符
  • saveptr:指针,用于保存分割状态。第一次调用时传入 NULL,后续调用需要传入不为 NULL 的值。

返回值:

  • 如果成功,则返回下一个子串;
  • 如果到达了字符串的末尾,则返回 NULL。

因此,上述代码输出为:

Hello
World
C
Programming

需要注意的是,在使用隐式声明时,需要确保编译器能够正确理解函数的原型,否则可能会遇到编译错误或运行时错误。建议在使用 strtok_r 函数时显式声明其原型,以确保代码的正确性。