我正在使用一个简单的程序来使用strtok函数对字符串进行标记.这是代码 –
# include
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作为第一个参数应该工作