重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//删除员工信息
站在用户的角度思考问题,与客户深入沟通,找到桐乡网站设计与桐乡网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网络空间、企业邮箱。业务覆盖桐乡地区。
void delete_worker(worker *HerdList)
{
int numble;
worker *temp1,*temp2;
for(temp1=HerdList;temp1-next;numble++)
{
temp1=temp1-next;
printf("\n\t\t[%d] %s",temp1-num,temp1-name);
}
temp1=HerdList;
printf("\n请输入您要删除的员工号:");
scanf("%d",numble);
for(;numble1;numble--)
temp1=temp1-next;
temp2=temp1-next;
temp1-next=temp2-next;
free(temp2); //释放空间
temp1=temp1-next;
if(temp1!=NULL)
{
for(;temp1-next;temp1=temp1-next)
temp1-num--;
}
printf("\n请按任意键继续...");
getch();
}
只要把链表的表头传进来,然后输入你要删除的第几个用户就可以了。就是释放节点的空间达到删除效果的。
大致就是这个思路,里面有些具体的东西需要改一下。
void del(struct Record s[])
{
int count,number,i,j,x,b;
printf("请输入需要删除信息的人数:");
scanf("%d",count);
for(i=0;icount;i++)
{
printf("请输入需要删除人的电话:");
scanf("%d",number);
for(j=0;jNUM;j++)
{
b=0;
if(s[j].tel==number)
{
for(x=j;xNUM;x++)
{
s[x]=s[x+1];
b=1;
}
NUM-=1;
if(b==1){break;}
else {printf("输入错误\n");}
}
}
}
}
楼主的意思是在str1中删除str2中出现的字符?那么改成:
#includestdio.h
void main ()
{
char str1[9]={'t','i','n','m','f','g','y','f','s'};
char str2[3]={'A','s','g'};
int i,k,l;
for(i=0;i9;i++)
{
l=0;
for(k=0;k3;k++)
{
if (str1[i]=str2[k])
{l=1;break;}
}
if l!=1
printf("%c",str1[i]);
}
}
链表保存到文件,删除节点,添加节点。
#include
"stdio.h"
#include
"malloc.h"
#include
/*
*
*
用户数据结构
*/
typedef
struct
struData
{
char
usertext[100];
int
userdata1;
int
userdata2;
}ST_DATA,*PST_DATA;
/*
*
*
链表结构
*/
typedef
struct
struLink
{
ST_DATA
userdata;
struct
struLink*
pnext;
}ST_LINK,*PST_LINK;
/*
*
*
链表操作
之
申请节点
*/
PST_LINK
MallocLinkNode()
{
PST_LINK
pLink
=
NULL;
pLink
=(PST_LINK)
malloc(sizeof(ST_LINK));
if
(pLink)
{
memset(pLink,0,sizeof(ST_LINK));
}
return
pLink;
}
/*
*
*
链表操作
之
添加节点(末尾)
*/
void
AddNodeToLinTail(PST_LINK
pNodeHead,PST_LINK
pNodeAdd)
{
while(pNodeHead-pnext
!=
0)
{
pNodeHead
=
pNodeHead-pnext;
}
pNodeHead-pnext
=
pNodeAdd;
pNodeAdd-pnext
=
0;
}
/*
*
*
链表操作
之
添加节点(头部)
*/
PST_LINK
AddNodeToLinHead(PST_LINK
pNodeHead,PST_LINK
pNodeAdd)
{
pNodeAdd-pnext
=
pNodeHead;
return
pNodeAdd;
}
/*
*
*
链表操作之
删除节点(假设
member
==
nCondition
为删除条件);
*
返回值为新的头部,因为有可能头部被删除。
*/
PST_LINK
DelLinkNode(PST_LINK
pNodeHead,int
nCondition)
{
PST_LINK
pTemp
=
pNodeHead;
PST_LINK
pTemp2;
/*在头部满足条件*/
if
(
pNodeHead-userdata.userdata1
==
nCondition)
{
pTemp
=
pNodeHead-pnext;
free(pNodeHead);
/*头部被删除,返回下个节点当头部*/
return
pTemp;
}
else
{
/*中间节点寻找满足的条件*/
while(pNodeHead-pnext
!=
0)
{
/*如果下一个节点满足条件*/
if
(pNodeHead-pnext-userdata.userdata1
==
nCondition)
/*这里是需要修改的地方*/
{
/*下一个满足了,我们删除下个节点,先保存它,以便释放内存*/
pTemp2
=
pNodeHead-pnext;
/*把它后面的节点连上来,覆盖要删除的节点*/
pNodeHead-pnext
=
pNodeHead-pnext-pnext;
/*释放删除节点内存*/
free(pTemp2);
/*这里可以返回了,要返回原先的链表头*/
return
pTemp;
}
/*测试下一个*/
pNodeHead
=
pNodeHead-pnext;
}
}
/*到这里,说明找不到,把原先的头部返回*/
return
pTemp;
}
int
GetNodeCount(PST_LINK
pLinkHead)
{
int
nCount
=
0;
while(pLinkHead)
{
nCount++;
pLinkHead
=
pLinkHead-pnext;
}
return
nCount;