C中字符串分割函数strtok的一个坑(转)

文章转载自:C中字符串分割函数strtok的一个坑 - CobbLiu - 博客园 (cnblogs.com)

 

strtok的典型用法是:

p = strtok(s4, split);

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

 需要注意的是:如果s4是字符串常量,运行这一段代码会报出段错误。因为strtok为了处理方便,会更改字符串s4中的一些字符(将分隔符split更改为'\0'),而字符串常量是不能更改的,所以会报段错误。

   第二个需要注意的点是:strtok处理的过程中会更改字符串s4中的一些字符(将分隔符split更改为'\0'),可恶的是,它处理完之后还不会给你再改回来。。。。被strtok强奸后的s4已经废了,千万不要再拿来用了。

posted @ 2021-09-07 15:51  yeshenmeng  阅读(202)  评论(0编辑  收藏  举报