c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

strtok函数的用法是什么

郑昌梦 2023-09-17编程经验
什么是strtok函数strtok()函数是C语言标准库中的一个字符串切割函数,可以将一个字符串按照指定的分隔符分割成多个子字符串。strtok函数的使用方法strtok()函数原型为char*strtok(char*

什么是strtok函数

strtok()函数是C语言标准库中的一个字符串切割函数,可以将一个字符串按照指定的分隔符分割成多个子字符串。

strtok函数的使用方法

strtok()函数原型为char *strtok(char *str, const char *delim),它接受两个参数:要切割的字符串和分隔符。

第一次调用时,需要将要切割的字符串作为str参数传入,此后每次调用该函数时,将str设置为NULL,表示继续使用上一次的字符串继续切割,直到字符串被切割完。

下面是一个strtok函数的示例:


#include 
#include 
#include 

int main()
{
    char str[] = "this is a test";
    char *token;

    token = strtok(str, " ");

    while(token != NULL)
    {
        printf("%s\n", token);
        token = strtok(NULL, " ");
    }

    return 0;
}

上面的代码将字符串"this is a test"按空格分隔成4个子字符串并逐一打印输出。

strtok函数的注意事项

strtok()函数在处理输入字符串时,会将分隔符替换为空字符('\0'),并返回上一次分隔符的位置作为下一次分隔的起点。

如果在多个线程中同时使用strtok()函数,由于该函数是状态性的,会发生竞争条件导致数据异常。

如果要切割的字符串是常量字符串,要先将其拷贝一份,否则会发生段错误。

下面是一个strtok函数的示例:


#include 
#include 
#include 

int main()
{
    char str[] = "this,is,,a,test";
    char *token;

    token = strtok(str, ",");

    while(token != NULL)
    {
        printf("%s\n", token);
        token = strtok(NULL, ",");
    }

    return 0;
}

上面的代码将字符串"this,is,,a,test"按逗号分隔成5个子字符串并逐一打印输出。

文章评论