当使用char * str作为第一个参数(不是分隔符字符串)时,strtok将无法正常工作。strtok不会接受:char * str
它与分配字符串的区域有什么关系? (据我所知,这是一个只读区域)。
在此先感谢
例如:
//char* str ="- This, a sample string."; // <---doesn't work
char str[] ="- This, a sample string."; // <---works
char delims[] = " ";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,delims);
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, delims);
}
return 0;
我明白了。没有意识到该功能的这种行为。 谢谢 – bks 2010-03-27 15:41:40