當前位置:首頁 » 編程語言 » 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 ");
}

}

熱點內容
編譯歷史 發布:2025-07-04 18:23:01 瀏覽:850
空調壓縮機種類 發布:2025-07-04 18:13:58 瀏覽:242
中國有ip6伺服器嗎 發布:2025-07-04 17:58:56 瀏覽:725
第六章編譯原理答案 發布:2025-07-04 17:37:55 瀏覽:40
php內存優化 發布:2025-07-04 17:25:54 瀏覽:664
威綸觸摸屏如何設置時間限制密碼 發布:2025-07-04 17:25:50 瀏覽:418
python列表的遍歷 發布:2025-07-04 17:24:20 瀏覽:24
編譯基本塊 發布:2025-07-04 17:23:06 瀏覽:750
scl語言編程 發布:2025-07-04 17:23:05 瀏覽:993
oracle用戶連接資料庫連接 發布:2025-07-04 17:20:20 瀏覽:939