当使用char *str作为第一个参数(而不是分隔符字符串)时,strtok将无法正确工作。
这是否与在该表示法中分配字符串的区域有关?(据我所知,这是一个只读区域)。
提前感谢您的回答。
示例:
//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;