引用请注明出处:http://blog.youkuaiyun.com/int64ago/article/details/7416985
话不多说,先来看个例子:
#include <stdio.h>
#include <string.h>
void print_tokens(char *line)
{
static char whitespace[] = " ";
char *token;
for(token = strtok(line,whitespace); token != NULL;
token = strtok(NULL,whitespace)){
printf("Next token is %s\n",token);
}
}
int main(int argc, char *argv[])
{
char line[] = "we are friends !! \n";
//char *line = "we are friends !!";
int len = strlen(line);
print_tokens(line);
int i;
for(i = 0; i != len; ++i){
if(line[i]){
putchar(line[i]);
}else {
putchar('0');
}
}
return 0;
}

本文探讨了strtok函数在处理字符串分段时的问题,指出其设计上的不足,包括不能同时处理多个对象以及可能导致的段错误。strtok通过内部常驻局部变量记录状态,这破坏了方法间的独立性,不符合C及Linux的哲学。尽管它在时间效率和空间效率上有优势,但使用时需要谨慎。
最低0.47元/天 解锁文章
579

被折叠的 条评论
为什么被折叠?



