您好,我正在處理一個鏈接列表 - 基於結構的項目,我正在問你們一些幫助。 當一個字符串是來自結構數據的字符串的一部分時,我必須從我的鏈接列表中刪除一個節點。當字符串匹配時刪除鏈接列表中的節點
到目前爲止,我已經想出了這個。我能夠使用strstr()
來查找兩個字符串中的匹配項,但是在它顯示字符串#1在字符串#2中後,整個程序就會下降。
void zmaz(STUFF *p_akt, STUFF *p_prv, STUFF *p_vymaz){
char meno_autor[100];
scanf("%s", meno_autor);
while(p_akt!=NULL) {
if(strstr(p_akt->autori,meno_autor)!=NULL){
printf("string %s is in %s\n", meno_autor, p_akt->autori);
p_vymaz=p_akt;
if (p_prv == p_vymaz){ //deleting the first node
p_prv = p_prv->p_dalsi;
}
else {
p_akt = p_prv;
while (p_akt->p_dalsi != p_vymaz) p_akt = p_akt->p_dalsi;
p_akt->p_dalsi = p_vymaz->p_dalsi;
}
free((void*)p_vymaz);
}
p_akt=p_akt->p_dalsi;
}
}
我不必只刪除一個節點,但也移動下一個節點,所以他們之間沒有任何差距。 我試圖儘可能多地解釋一切。謝謝!
嘗試使用調試器。 – 2013-05-06 00:05:38