您好,我正在处理一个链接列表 - 基于结构的项目,我正在问你们一些帮助。 当一个字符串是来自结构数据的字符串的一部分时,我必须从我的链接列表中删除一个节点。当字符串匹配时删除链接列表中的节点
到目前为止,我已经想出了这个。我能够使用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