c语言学生系统删除函数 c语言删除函数怎么写

C语言的删除函数

楼主的意思是在str1中删除str2中出现的字符?那么改成:

创新互联公司-专业网站定制、快速模板网站建设、高性价比乌拉特后网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式乌拉特后网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖乌拉特后地区。费用合理售后完善,10年实体公司更值得信赖。

#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]);

}

}

求C语言删除函数运行说明

void del()

{

STU a[20]; char tname[20];

int i=0,j,n=0;

FILE *fp;

printf("\t\t\t请输入要删除的姓名:");

scanf("%s",tname);

/*****以下内容是读取文件信息,并将文件中的信息与用户输入的姓名做比较,如果姓名相同,则删除该学生信息***/

if((fp=fopen("e:\\file1","rb"))==NULL) //打开文件file1

{printf("error!\n");exit(0);} //打开失败,报错并退出系统

while(fread(a[n],sizeof(STU),1,fp)!=0) //打开成功,每次从文件中读入一个STU结构大小的数据,并将其存入数组a[]中。直到文件内容结束。

n++;

/**该循环用于查找**/

for(i=0;in;i++)

if(strcmp(a[i].name,tname)==0) break; //找到姓名相同的学生了,结束循环。

if(i==n) //找完一遍,没找到

{ printf("\t\t\t没有找到!\n");

fclose(fp); //关闭文件file1

}

else //找到了同姓名的学生

{

/**该循环用于删除该学生信息**/

for(j=i;jn-1;j++) //从找到该学生的位置开始,依次把后面的数据前移,覆盖掉前一个

{

a[j]=a[j+1];

}

n=n-1; //学生总数减1

/****以下内容是更新文件,并提示用户删除成功****/

if((fp=fopen("e:\\file1","wb"))==NULL) //再次打开文件file1,把删除之后的信息保存到文件中

{printf("error!\n");exit(0);}

fwrite(a,sizeof(STU),n,fp); //每次往文件中写入一个学生的信息(即一个STU大小)

fclose(fp);

printf("\t\t\t删除成功!\n");

system("pause"); //页面显示诸如“按任意键继续……”

}

}

求用C语言中的结构体编写的《学生成绩管理系统》中的删除学生信息程序段。

/*****************************************************************

【作者日期】test 2013-06-01

【函数功能】根据学生ID删除学生信息

【输入参数】头结点指针

【输出参数】头结点指针

【函数返回】头结点指针

【算法说明】入参检查要全面及出错信息处理要完善

【修改记录】

*****************************************************************/

Link *DelInfo(Link *head)

{

//clearScreen();

Link *tail;//

Link *tmp;

Link *nhead;

int pID;

tail = NULL;

tmp = head;

nhead = head;

pID = 0;

if(NULL == head)

{

printf("empty link.\n");

// WaitSys();

return head;

}

tail = head-next;

printf("Please input the ID(which you want to del): \n");

scanf("%d", pID);

getchar();

//删除的是头结点

if(tmp-ID == pID)

{

tmp = tmp-next;

nhead = tmp;

free(tmp);

if(NULL != tmp)

tmp = NULL;

return nhead;

}

//删除其他位置

while(tail)

{

if(tail-ID == pID)

{

tmp-next = tail-next;

free(tail);

if(NULL != tail)

tail = NULL;

return nhead;

}

else

{

tmp = tmp-next;

tail = tail-next;

if(NULL == tail)

{

printf("你输入的ID不存在\n");

WaitSys();

return nhead;

}

}

}

return nhead;

}

希望对楼主有所帮助!

c语言删除学生信息函数 有问题求指教!

struct student* del(struct student* head)

{

if (NULL == head)//如果链表为空,则直接返回

return head;

struct student* p, *q;

int num;

p = head;

printf("请输入要删除学生的学号:\n");

scanf("%d", num);//这里不需要再申请结构体空间,直接放int变量就可以了

// 循环查找,直到找到或者链表结束为止

while (p != NULL p-num != num)

{

q = p;//q用来保存上一节点,再删除当前节点时会用到,见p!=NULL

p = p-next;

}

//while结束后,p==NULL,则表示没有找到

//如果找到第一个p一定不为NULL,因为第一句已经判断,head后移一次

if (p == head)

head = head-next;//头结点改变

else if (p != NULL)

{

q-next = p-next;//断开要删除的节点

p-next = NULL;

}

//如果找到,则需要释放删除的节点的空间,避免内存泄露

if (p != NULL)

free(p);

return head;//由于可能改变了头结点,所以需要返回头结点

}

void main()

{

struct student*head;

head=create();

system("cls");

print(head);

getchar();

getchar();

head = del(head);//这里需要得到头结点,因为头结点可能改变了

getchar();

getchar();

system("cls");

print(head);

}

按照上面的改就没问题了,有不懂的再问

不好意思,早上出去玩了


网站栏目:c语言学生系统删除函数 c语言删除函数怎么写
分享URL:http://scyanting.com/article/dosgjdp.html