我在運行代碼時出現Segmentation Fault(核心轉儲)錯誤。在使用了一些printf語句之後,我發現strcmp部分有錯誤,也許是因爲比較字符串和字符串?我該如何解決?在C中使用strcmp的分割錯誤?
// this function checks if the file contains the *string
bool checkIfMatch(char *string, FILE *file) {
while (true) {
char buff[1024];
fgets(buff, sizeof buff, file);
if (buff == NULL)
break;
char *substring=strstr(buff, string);
if ((strcmp(buff, substring)) == 0)
return true;
}
return false;
}
使用strncmp()而不是strcmp()(即strlen(substring))。 –
這個:'if(buff == NULL)break;'will * never * cause a break;使用'if(fgets(buff,sizeof buff,file)== NULL)break;'在'strcmp'中使用它們之前,你也不會檢查'strstr'的結果。 – WhozCraig
和'strcmp'和'strstr'只有一個或其他重複。 – BLUEPIXY