C strtok函数常量字符指针错误

C strtok函数常量字符指针错误,c,C,我一直得到以下错误 passing argument 1 of 'strtok' discards 'const' qualifier from pointer target type [enabled by default] 通过这条线 for (char *p = strtok(season_info,"\n"); p != NULL; p = strtok(NULL, " ")) ps:季节信息的定义如下: const char*seasure\u infostrtok需要更改字符串,

我一直得到以下错误

passing argument 1 of 'strtok' discards 'const' qualifier from pointer target type [enabled by default]
通过这条线

for (char *p = strtok(season_info,"\n"); p != NULL; p = strtok(NULL, " "))
ps:季节信息的定义如下:
const char*seasure\u info

strtok
需要更改字符串,因此它不能对
const char*
参数进行操作。在将该字符串发送到strtok

之前,您需要制作该字符串的副本,这是基本的常量正确性。应该很清楚为什么这个函数也需要写访问权限。所以我需要从const char*转换到char*?转换是危险的,也是获得未定义行为的好方法。我会避免那样做。您需要制作一个副本。有专门的函数吗?在使用
strok
之前,您至少应该熟悉C标准库中可用的
str
函数系列。花些时间熟悉它们,您将更好地了解解决此类问题所需的工具。@Yasmin12,您不应丢弃“const-away”,因为有时原始字符数据可能驻留在只读内存中,并且strtok()在第一次修改尝试时会因“访问冲突”错误而崩溃。