问题遇到的现象和发生背景
使用的是2010C++学习版
输入职工姓名回车就报错
问题相关代码,请勿粘贴截图
void shanchu()
{
char xinming[20];
printf("请输入需要删除的职工的姓名:\n");//即从链表里删除一个节点,需要遍历
scanf("%s",&xinming);
Node* p1,*p2;
if(0==strcmp(g_pHead->zgo.name,xinming))//判断是不是头结点
{
p1=g_pHead;
g_pHead=g_pHead->pNext;
free(p1);
return;
}
Node*p=g_pHead;
while(p->pNext!=NULL)
{
if(0==strcmp(p->pNext->zgo.name,xinming))
{
p2= p ->pNext;
p->pNext=p->pNext->pNext;
free(p2);
return;
}
p=p->pNext;
if(p->pNext==NULL)
{
break;
}
}
if(p->pNext==NULL)
{
printf("没有该职员\n");
}
system("pause");
system("cls");
}
运行结果及报错内容
我的解答思路和尝试过的方法
尝试过一节一节删除和百度,问题应该在if和while的判断头结点上,但这两个都是数组,上一个函数这样判断数据相同成功了,这次不知道该怎么修改
我想要达到的结果
使用职工姓名搜索出要删除的对象并删除