当前位置:首页 » 编程语言 » c语言删除函数

c语言删除函数

发布时间: 2023-01-02 21:33:50

‘壹’ c语言编写一个插入删除函数

一般呢,插入和删除函数是分开写的,还有分成两种存储结构,1.顺序表,2.链表,我给你一个我上数据结构时候写的链表的操作,里面全都有,如果不会用,追问我

#include<stdio.h>

#include<malloc.h>

#include<Windows.h>

#include<conio.h>

#include<stdlib.h>

typedef struct

{

int data;

struct LNode *next;

}LNode;

LNode *Listinit(LNode *L)//初始化链表返还头指针

{

L = (LNode *)malloc(sizeof(LNode));

if (!L)return 0;

L->next = NULL;

return L;

}

int GetElem_L(LNode *L, int i, int *e)//取第i个元素

{

int j;

LNode *p;

p=L->next;j=1;

while(p&&j<i)

{

p=p->next;++j;

}

if(!p||j>i) return 0;//i超过表长

*e=p->data;

return 1;

}

int ListInsert_L(LNode *L, int i, int e)//插入数据元素

{

LNode *p1 = L,*p2=L;

int j = 0;

if (i-1 > LinkLength(L))

return 2;

while(p1!=NULL && j<i-1)

{

p1 = p1->next;

j++;

}

p2 = (LNode *)malloc(sizeof(LNode));

if (!p2)

return 0;

p2->data = e;

p2->next = p1->next;

p1->next = p2;

return 1;

}

void ClearList(LNode *L)//重置为空表

{

LNode *p;

while(L->next)

{

p=L->next;

L->next=p->next;

free(p);

}

}

void print_link(LNode *L)//输出函数

{

LNode *p = L;

p = p->next;

while (p != NULL)

{

printf("%5d", p->data);

p = p->next;

}

}

int ListDlete_L(LNode *L, int i, int *e)//删除L中I,并用e返回

{

int j = 0;

LNode *p1 = NULL, *p2 = NULL;

p1 = L;


while (p1->next != NULL && j < i - 1)

{

p1 = p1->next;

j++;

}

if (p1->next == NULL || j > i - 1)

return 0;

p2 = p1->next;

p1->next = p2->next;

free(p2);

return 1;

}

int LinkLength(LNode *L)//链表的长度

{

int i = 0;

LNode *p = L->next;

while (p != NULL)

{

i++;

p = p->next;

}

return i;

}


‘贰’ C语言删除字符串中指定字符

一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

1、输入:第一行是一个字符串; 第二行是一个字符。

2、输出:删除指定字符后的字符串。

二、设计思路:

1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。

2、用gets函数输入数组a的值,并利用for循环将数组a 到 数组b。

3、利用for循环,令pos位的数组b元素赋值到a。

三、实现代码如下:

(2)c语言删除函数扩展阅读

gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加''字符。其调用格式为:gets(s),其中s为字符串变量(字符串数组名或字符串指针)。

gets()函数读取到 (我们输入的回车)于是停止读取,但是它不会把 包含到字符串里面去。然而,和它配合使用的puts函数,却在输出字符串的时候自动换行。

gets(s) 函数中的变量s为一字符串指针。如果为单个字符指针,编译连接不会有错误,但运行后内存溢出错误。宽字符版本,当使用unicode宽字符文本时,使用这个函数 _getws();在C11标准中被删除,可用C标准库中的fgets代替.

‘叁’ C语言问题 实现在字符串的内部删除字符串的函数del。

#include<stdio.h>
voiddel(char*s,intn,intlen)
{char*p;
s+=n;
for(p=s+len;*s++=*p++;);
}
intmain()
{chars[]="apple";
if(s==NULL||n<0)
{printf("error");
return0;
}
del(s,2,2);
puts(s);
return0;
}

‘肆’ 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语言数组删除函数删除不了

两种做法

1 数组a[]设为全局变量

#include<stdio.h>
#include<stdlib.h>

inta[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

voiddelete1(intx)
{
inti;
for(i=x;i<20;i++)
a[i]=a[i+1];
}

intmain()
{
inti,x;
printf("请输入要删除的学生学号:");
scanf_s("%d",&x);
delete1(x);
for(i=0;i<20;i++)
printf("%d ",a[i]);
system("pause");
return0;
}


2 delete1函数增加一个参数,用于传入待处理的数组

#include<stdio.h>
#include<stdlib.h>

voiddelete1(intx,inta[])
{
inti;
for(i=x;i<20;i++)
{
if(i+1==20)
{
a[i]=0;
}
else
{
a[i]=a[i+1];
}
}
}

intmain()
{
inta[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},i,x;

printf("请输入要删除的学生学号:");
scanf_s("%d",&x);

delete1(x,a);
for(i=0;i<20;i++)
printf("%d ",a[i]);

system("pause");
return0;

少年,自行选一个吧,总有一款你喜欢的

‘陆’ c语言怎样删除文件

首先要说明的是这里并不是指删除C编译器里面的文件,呵呵,如果只是要删除那些文件的话,那就很简单,直接选中文件后按delete键就可以删除了,但是我们删除那些文件干嘛?我们还要用它写程序啊,呵呵。我在这里要说的是,怎样使用C语言编写程序来删除文件。

在C语言中,我们可以使用remove()函数来删除指定的文件,具体语法为:
Int remove(char *filename);其中filename是一个指向字符串的指针,该字符串可以组成有效的文件名,也可以包含路径说明。如果我们要删除D盘下的ABC.txt文件,我们就可以这样写:remove(“D:\ABC.txt”);

‘柒’ 数据结构,C语言,delete函数

void
delete_student(student
*l,long
studentnum)
{
int
flag
=
0;
student
*
p
=
l,*q
=
p->next;
while(q)
{
if(q->number
==
studentnum)
{
flag
=
1;
q
=
q->next;
break;
}
else
{
p
=
q;
q
=
q->next;
/*下一个结点*/
}
}
if(flag
==
0)
printf("删除学生失败,不存在这个学号的学生\n");
else{
printf("删除学生成功!
\n
");
}
}

‘捌’ C语言的删除函数

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

#include<stdio.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;i<9;i++)
{
l=0;
for(k=0;k<3;k++)
{
if (str1[i]=str2[k])
{l=1;break;}
}
if l!=1
printf("%c",str1[i]);
}
}

‘玖’ C语言编程。函数Delete()

void delete_student(student *L,long studentnum)
{
int flag = 0;

student * p = L,*q = p->next;

while(q)
{
if(q->number == studentnum)
{
flag = 1;
q = q->next;
break;
}
else
{
p = q;
q = q->next; /*下一个结点*/
}
}
if(flag == 0)
printf("删除学生失败,不存在这个学号的学生\n");
else{
printf("删除学生成功! \n ");
}

}

热点内容
java直播网站源码 发布:2025-07-04 14:46:35 浏览:169
安卓应用市场消费记录怎么删除 发布:2025-07-04 14:39:47 浏览:30
知道一个服务器的ip地址 发布:2025-07-04 14:20:33 浏览:597
苹果7锁屏密码怎么改 发布:2025-07-04 14:04:44 浏览:710
P三零是什么配置 发布:2025-07-04 13:58:41 浏览:361
哪个安卓机有长方形home键 发布:2025-07-04 13:43:58 浏览:861
android脚本录制 发布:2025-07-04 13:17:47 浏览:342
嵌入式和安卓哪个硬件成本高 发布:2025-07-04 13:05:56 浏览:229
360代理服务器怎么设置 发布:2025-07-04 12:49:49 浏览:515
iphone在哪清除缓存 发布:2025-07-04 12:49:38 浏览:340