在 WinCE 下使用 strtok 函数时,发现如此调用:TestStrtok("URL;;;;"); 会卡死在 strtok() 函数中。不清楚是为什么,谁知道原因啊?
void TestStrtok(char *pcStrIn)
{
char *pcToken = NULL;
char cStep[] = ";";
int iCount = 0;
pcToken = strtok(pcStrIn,cStep);
printf("No.%d %s\r\n",iCount,pcToken);
while(NULL != pcToken)
{
iCount++;
pcToken = strtok(NULL,cStep);
printf("No.%d %s\r\n",iCount,pcToken);
}
}
调用方法:
char cTokenIn[] = "URL;1;2;3;4";
TestStrtok(cTokenIn);
TestStrtok("URL;;;;");
以上两种调用方法有什么不同?为什么一个正确,另一个却卡死了?
------解决方案--------------------
哈,strtok直接卡死,真怪了。
------解决方案--------------------
是不得看一下strtok这个函数定义的原码,他要求什么样的参数!
------解决方案--------------------
这个函数,是标准C的。
不过会卡死,应该算是Bug。