c语言函数如何删除数据,c语言删除函数怎么写

C语言的删除函数

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

成都创新互联是一家专注于网站设计制作、成都网站设计与策划设计,揭东网站建设哪家好?成都创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:揭东等地区。揭东做网站价格咨询:18980820575

#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语言中如何删掉一个数据

# includestdio.h

# includestdlib.h

# define M 5

struct student

{

int number;

char name[20];

struct student *next;

};

struct student *p,*pp,*q,*qq,*pop,*temp,*head=NULL;

void main()

{

struct student* cat(struct student *p,struct student *head,int n);

int i=1;

while(i=M)

{

q=(struct student *)malloc(sizeof(struct student));

printf("输入第%d个结点学号和姓名:(注意有空格)\n",i);

scanf("%d %s",q-number,q-name);

if(head==NULL)

head=p=q;

p-next=q; //将新分配的结点连起来

p=p-next; //指针p指向最后一个结点

q-next=NULL; //最后一个结点的指针域置空

i++;

}

//输出构造的学生链表,作对照

printf("未被删除前:\n");

p=head;

while(p!=NULL)

{

printf("%d\t%s",p-number,p-name);

printf("\n");

p=p-next;

}

int n;

printf("请输入要删除的位置");

scanf("%d",n);

//删除结点

p=head;

pp=cat(p,head,n);

printf("元素被被删除后:\n");

while(pp-next!=NULL)

{

printf("%d\t%s",pp-number,pp-name);

printf("\n");

pp=pp-next;

}

//输出最后一个结点

printf("%d\t%s\n",pp-number,pp-name);

}

//删除一个结点

struct student* cat(struct student *p,struct student *head,int n)

{

int i=1;

while(p!=NULL)

{

//for循环使p指向要被删除的结点.q指向被删除结点的前一个结点

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

{

q=p;

p=p-next;

}

if(p==head) //删除结点为头结点时

{

head=p-next;

free(p);

return head;

}

else if(p-next==NULL) //删除结点为尾结点时

{

q-next=NULL;

free(p);

return head;

}

else

{

q-next=p-next; //删除非头尾结点时

free(p);

return head;

}

}

}

/*测试数据如下:*/

/*

输入第1个结点学号和姓名:(注意有空格)

1000 wang

输入第2个结点学号和姓名:(注意有空格)

1001 li

输入第3个结点学号和姓名:(注意有空格)

1002 zhang

输入第4个结点学号和姓名:(注意有空格)

1003 yan

输入第5个结点学号和姓名:(注意有空格)

1004 zhao

未被删除前:

1000 wang

1001 li

1002 zhang

1003 yan

1004 zhao

请输入要删除的位置1

元素被被删除后:

1001 li

1002 zhang

1003 yan

1004 zhao

*/

/*

输入第1个结点学号和姓名:(注意有空格)

1000 wang

输入第2个结点学号和姓名:(注意有空格)

1001 li

输入第3个结点学号和姓名:(注意有空格)

1002 zhang

输入第4个结点学号和姓名:(注意有空格)

1003 yan

输入第5个结点学号和姓名:(注意有空格)

1004 zhao

未被删除前:

1000 wang

1001 li

1002 zhang

1003 yan

1004 zhao

请输入要删除的位置3

元素被被删除后:

1000 wang

1001 li

1003 yan

1004 zhao

*/

/*

输入第1个结点学号和姓名:(注意有空格)

1000 wang

输入第2个结点学号和姓名:(注意有空格)

1001 li

输入第3个结点学号和姓名:(注意有空格)

1002 zhang

输入第4个结点学号和姓名:(注意有空格)

1003 yan

输入第5个结点学号和姓名:(注意有空格)

1004 zhao

未被删除前:

1000 wang

1001 li

1002 zhang

1003 yan

1004 zhao

请输入要删除的位置5

元素被被删除后:

1000 wang

1001 li

1002 zhang

1003 yan

*/

用c语言函数删除数组中的数据

既然是数组,表示数据为线性阵列了,想删除其中一个数据,是不可能的,只能用该位置以后的数据整体平移一个位置覆盖当前位置。例如:数组数据 1 2 3 4 5 6 7,想删除3,那么得到的新数组为1 2 4 5 6 7,其中 4 5 6 7 数据的位置相对原始数组位置整体平移减小1。

当然想是想快速删除数据,可以考虑使用数据链表,对数组单链即可


分享文章:c语言函数如何删除数据,c语言删除函数怎么写
URL标题:http://ybzwz.com/article/hshgec.html