C中的strtok函数出错
发布时间:2020-12-16 10:19:16 所属栏目:百科 来源:网络整理
导读:我正在使用一个简单的程序来使用strtok函数对字符串进行标记.这是代码 – # include stdio.hchar str[] = "now # time for all # good men to # aid of their country"; //line achar delims[] = "#";char *result = NULL;result = strtok( str,delims );whi
我正在使用一个简单的程序来使用strtok函数对字符串进行标记.这是代码 –
# include <stdio.h> char str[] = "now # time for all # good men to # aid of their country"; //line a char delims[] = "#"; char *result = NULL; result = strtok( str,delims ); while( result != NULL ) { printf( "result is "%s"n",result ); result = strtok( NULL,delims ); } 该程序成功运行.但是,如果将行a更改为 char * str= "now # time for all # good men to # aid of their country"; //line a strtok函数提供核心转储.我想得到一个解释,我理解为什么会这样?因为从strtok的声明为–char * strtok(char * str1,const char * str2); char * str作为第一个参数应该工作 解决方法
您无法修改字符串文字.
The c faq on the subject解释得最好.简而言之,如果你宣布
char *stuff = "Read-only stuff"; 你无法修改它. strtok接受char *的事实与您无法将数组传递给函数的事实有关,您只能传递地址. Another c faq entry可能会有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |