21xrx.com
2024-09-17 11:50:37 Tuesday
登录
文章检索 我的文章 写文章
C语言 strtok 函数的用法及示例
2023-08-06 02:54:55 深夜i     --     --
C语言 strtok 函数 用法 示例

C语言中的strtok函数是一个非常有用的函数,可以将字符串分割为多个子字符串。它的原型如下:

`char *strtok(char *str, const char *delim);`

其中,str是要分割的字符串,delim是分割字符串的定界符。函数的返回值是指向下一个子字符串的指针。

下面是一个示例程序,演示了strtok函数的用法:


#include <stdio.h>

#include <string.h>

int main()

{

  char str[100] = "Hello,World|This,is,a,test";

  char *token;

  // 使用strtok函数分割字符串

  token = strtok(str, ",|");

  // 循环打印分割得到的子字符串

  while (token != NULL)

  {

    printf("%s\n", token);

    token = strtok(NULL, ",|");

  }

  return 0;

}

上述程序中,我们定义了一个包含多个子字符串的字符数组str。我们使用strtok函数将str按照逗号和竖线进行分割,并将每个子字符串打印出来。

在第一次调用strtok函数时,我们将str和定界符",|"作为参数传递给函数。函数会将第一个子字符串"Hello"返回给变量token,并且在后续的调用中保留剩下的字符串"World|This,is,a,test"。

在后续的循环中,我们将NULL作为str参数传递给strtok函数,用以指示它继续在剩余字符串中进行分割。函数会返回剩下的子字符串,并将它赋值给token变量。当再次遇到NULL时,表示所有的子字符串都已经分割完毕,循环结束。

运行上述程序,我们将得到以下输出结果:


Hello

World

This

is

a

test

可以看到,使用strtok函数,我们成功地将字符串分割为多个子字符串,并成功打印出来。这非常方便,特别是当我们需要处理一些包含多个子字符串的数据时。

需要注意的是,strtok函数是会改变原始字符串的,因此如果在后续使用原始字符串时需要保持不变,可以使用strtok函数的备用版本strtok_r,这个版本接受一个指向保存分割状态的指针。

总之,C语言中的strtok函数是非常有用的,可以方便地将一个字符串分割为多个子字符串。掌握了它的用法,我们可以更加灵活地处理字符串操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复