请教strtok函数:其函数的返回值是什么?
我没怎么理解函数的说明,感觉好像是说函数的返回值是 标记的下一个字符。但是我用下面代码测试时,
发现p[0]输出的是 10,iptv,red。
首先第一个问题:如果返回值是 指向'/'之后的那个字符的指针的话,那么p[0]的输出就不应该是10,red了吧?如果这样是正确的,那么对于 "/iptv/11/22/33/44.wav",输出为什么是 iptv呢?
然后第二个问题:p[0]输出的时候,strtok才被调用一次,除了第一个'/'被置换为 \0,其他的应该都还是保持为'/',
这时候输出应该是很长的字符串吧?
请指教,谢谢!
#include<stdio.h>
#include<string.h>
int main()
{
int i=0;
char buffer[]="10/iptv/11/22/33/44.wav"; /* "/iptv/11/22/33/44.wav" ;"red,green,blue"*/
char *p[3];
char *buf = buffer;
while((p[i]=strtok(buf,"/"))!=NULL)
{
printf("p[%d]:%s\n",i,p[i]);
i++;
buf=NULL;
}
printf("buffer:%s\n",buffer);
return 0;
}