[英]Using strcmp() function with pointer array in C program
我正在嘗試檢測指針數組中的重復字符串。 我想用 strcmp() function 檢測是否有任何重復,並想刪除除第一個重復之外的重復,但是當我添加strcmp()
function: Segmentation fault (core dumped)
時命令行給出錯誤
這是我的代碼; 並且大小等於產品數組的大小。
FILE* temp_file_to_read = fopen("temp.txt", "r");
char temp_line[256];
char *products[256];
int j = 0;
while(fgets(temp_line, sizeof(temp_line), temp_file_to_read)){
//printf("%s", temp_line);
products[j] = strdup(temp_line);
printf("%s", products[j]);
j++;
}
for(int i = 0; i< size; i++){
for(int j = i+1; j < size; j++){
if(strcmp(products[i], products[j])==0){
printf("%s is exist\n", products[j]);
}
}
}
我猜你的文件沒有 256 個產品,每個產品的長度正好是 256 個字符,所以你的products
數組不完整。 因此,當您執行strcmp(products[i], products[j])
時,您有時會嘗試使用垃圾指針,就好像它們指向真正的字符串一樣,這就是您遇到段錯誤的地方。
您的代碼有幾處問題,包括
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.