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已经废了,千万不要再拿来用了。