位置:首页 > C > C语言strtok函数用指定分隔符分解字符串的方法

C语言strtok函数用指定分隔符分解字符串的方法

时间:2026-08-18  |  作者:怪兽小助手  |  阅读:0

函数名: strtok

C语言strtok()函数:用指定的分隔符分解字符串

基本信息

头文件:

函数原型: char *strtok(char *str1, const char *str2);

功能:用指定的分隔符分解字符串

参数说明

  • char *str1 为要分解的字符串
  • const char *str2 为分隔符字符串

返回值

返回下一个分割后的字符串指针,如果已无从分隔,则返回NULL

注意事项

  • 1、函数的作用是分解字符串。所谓分解,即没有生成新串,只是在s所指向的内容首次出现分界符的位置,将分界符修改成了'/0’。故第一次用strtok()返回第一个子串。
  • 2、第一次把子串提取出来之后,如果还要继续从源字符串 s 里往下拆,那么从第二次、第三次一直到第 n 次调用开始,strtok 的第一个参数都应该传空值 NULL。
  • 意思很明确:函数会接着上一次调用时隐式保存的位置,继续对字符串做分解。对应前一次调用来说,就是在第一次调用结束前,会用一个 this 指针指向分界符后的下一位。
  • 3、当this指针指向“” 时,即没有被分割的子串了,此时则返回NULL
  • 4、可以把delim理解为分隔符的集合,delim中的字符均可以作为分隔符。
  • 5、strtok在调用的时候,如果起始位置即为分隔符,则忽略了起始位置开始的分隔符
  • 6、该函数会改变str1的值,所以str1必须是字符串数组,不能是字符串指针

程序例

将字符串数组input通过分隔符","分隔开,并将结果输出

#include

#include

int main(void){

   char input[50] = "I like www.dotcpp.com very much";

   char *p = strtok(input, " ");

   if(p){

      printf("%sn", p);

   }

   while(p=strtok(NULL, " ")){//使用第一个参数为NULL来提取子串

      printf("%sn", p);

   }

   return 0;

}

运行结果

I 
like
www.dotcpp.com
very 
much


免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多