⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 infdelete.cpp

📁 基于VC的小型数据库管理程序源代码
💻 CPP
字号:
#include "include.h"

extern Inflinklist *head;
//------------------------------------------------
//--删除信息
//------------------------------------------------
char Infindelete(Inflinklist * ps, char *name)
{    
	 char cc;
	 int n=0; //通过n的值来判断是否链表中有输入的删除姓名项
     Inflinklist * q0, *q1, *del;  //q0指向q1的前一位置,del用来标志姓名符合时的位置
	 q1=ps->next;
	 q0=ps;
     if( q1 == NULL)  //链表只有头结点
		  printf("No information left in the linklist!\n");
	 else
	 { 
		  while(q1!=NULL)  //有同名时需比较到底
		  {
              if(!( q1->name[0]==name[0]))  //比较名字的第一个字符是否相同,不同则继续
			  {                            //节省比较时间
				 q0=q1;
				 q1=q1->next;
			  }
	          else
			  {
		          if(!(strcmp(q1->name, name)))  //比较是否全部相同,相同则找到继续往下
				  {
					  printf("  delete information is below:\n");
                      printf("  name:%s\t sex:%c\t age:%d\t spousename:%s\n",q1->name,q1->sex,q1->age,q1->spousename);
					  q0->next=q1->next;
					  del=q1; // 将位置赋与del,q1继续向前
					  q1=q1->next;
					  free(del);
					  n=n+1;
				  }
                  else
				  {
					  q0=q1;
					  q1=q1->next;
				  }
	          }
		  }//end while
		  if(n==0)  printf("No such name in the list! Be sure the name input is correct!\n");
	 }//end else
	 
	 fflush(stdin);
	 printf("Dlete continue? press Y/y continue;to end,press N/n:\t");
	 cc= GetContinueNote();
	 return cc;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -