
int main() { char *a= "abc de ft"; char *b=" "; char *p; p=strtok( a,b ); while( p!= NULL ) { printf( "%s\n",p ); p = strtok( NULL,b ); } } 为什么我运行后出错Segmentation fault 还有就是不明白为什么调用一次以后第一个参数必须是null
by houtinghua - C/C++ - 2012-11-27 14:54:01 阅读(1406) 回复(7)
char * __cdecl strtok ( char * string, const char * control ) { unsigned char *str; const unsigned char *ctrl = control; unsigned char map[32]; int count; #ifdef _MT _ptiddata ptd = _getptd(); #else /* _MT */ static char *nextoken; #endif /* _MT */ /* Clear control map */ for (count = 0; count < 32; count+...
函数strtok(str1,str2) 在执行后str1的字符串是否已经被改成函数结果字符串? str2是否能用字符和数字的合用字符串? #include "string.h" #include "stdio.h" main() { char s[2000]="02349799nx4210RQ000000"; char d[15]="TranCode4"; char *p=NULL; p=strtok(s,d); printf("s==%s\n",s); printf("p==%s\n",p); return 0; } 结果为 s==023 p==023 #include "string.h...
[code]#include
#include
strtok函数的原型是char *strtok(char *str, const char *delim);
可是在使用的时候如果第一个参数是指针的形式,比如 char *s="abd,d",那运行的时候就会出错,换成数组的形式后就没有问题,比如char s[]="abd,d";
为什么会出现这种情况??下面是一个例子代码。
[code]
1 #include
做着玩,请高手指教.
[CODE]
#include
我在使用strtok分割字符串的时候,如果两个分隔符连在一起,即有一个空串的时候无法正确得到空串,分出来的是下一个字符串,例如"abc;;def",本来第二个应该得到一个空串,实际得到的是"def",有解决的办法么,谢了!!
我自己想写个函数实现strtok的功能,分隔字符串的功能我能实现 但是,确定分割符号我总搞不定 strtok(char*ptr1,char *ptr2) 里边char *ptr2 是传分割符的 ,但是怎么确定随机的分割符号呢 分割符很随机,应该怎么判断传进来的分割符号,并把他们和其他字符区分开呢 要是固定的 我直接跳过那些字符就好了 ,可是是随机性的,该怎么处理呢 我看了strtok的源函数 看不懂它是怎么处理的 /* Clear control map */ ...
问个问题,象下面方法使用strtok函数
a="