我正在使用一个简单的程序,使用strtok函数将字符串进行标记化。以下是代码 -
程序运行成功。然而,如果将a行更改为,则会出现错误。
# 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应该有效。