在 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。