出于某种原因,我在第一次使用strtok()时得到一个异常我想要完成的是一个函数,它只是检查子串在字符串中是否重复.但到目前为止我还没有开始工作
int CheckDoubleInput(char* input){
char* word = NULL;
char cutBy[] = ",_";
word = strtok(input, cutBy); <--- **error line**
/* walk through other tokens */
while (word != NULL)
{
printf(" %s\n", word);
word = strtok(NULL, cutBy);
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
和主要调用功能:
CheckDoubleInput("asdlakm,_asdasd,_sdasd,asdas_sas");
Run Code Online (Sandbox Code Playgroud)

两者都input有些不好。尝试在调用之前打印它strtok,或者您正在使用strtokGCC 编译器在多个线程上使用。一些编译器有一个名为“strtok_r”的线程安全版本。Visual Studio 已将原始函数修复为线程安全的。
您修改后的答案表明您正在传递一个只读的字符串文字。
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |