當前位置:首頁 » 編程語言 » c語言查找並刪除
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言查找並刪除

發布時間: 2023-02-10 02:50:07

㈠ 怎樣用c語言編寫一個程序,實現查找一個字元串中的特定字元,並將其刪除

char chr[5] = "abccd";
char chr1[1] = "c";
int j=0;
for(int i =0;i<5;i++)
{
if(chr[i]=="c")
j++;//先算出有幾個符合的
}
char chrNew[j];
int m=0;
for(int k =0 ; k<5;k++)
{
if(chr[k]!="c")
chrNew[m] = chr[k];
m++;
}
此時獲得的chrNew就是新的刪除之後的字元串了
基本類型中不支持刪除操作,所以實際上就是一個新的字元串。

㈡ C語言 打開本地文件查找信息並刪除

你的刪除有問題

if(strcmp(head->name,name)==0)
head=head->next;

else{

for(p=head->next;p&&strcmp(p->next->name,name);p=p->next)

q=p;

if(p->next!=NULL)
q->next=p->next;
else
printf("員工資料中沒有此人的記錄.\n");
}
你原來的刪除如果刪除的是表頭結點的話會出錯

㈢ c語言編寫一個程序,實現查找一個字元串中的特定字元,並將其刪除.

一、演算法描述

逐個比較字元串source中的字元,若當前i位置的字元等於待刪除字元ch,則i+1..len-1之間的子串整體前移;如此反復,直到所有待刪除字元都找到並被刪除為止。


二、操作過程

請輸入一個字元串:Howareyou?
請輸入待刪除字元:o
新的字元串:Hwareyu?

㈣ 怎樣用c語言編寫一個程序,實現查找一個字元串中的特定字元,並將其刪除

char chr[5] = "abccd";x0dx0achar chr1[1] = "c";x0dx0aint j=0;x0dx0afor(int i =0;i<5;i++)x0dx0a{ x0dx0aif(chr[i]=="c")x0dx0aj++;//先算出有幾個符合的x0dx0a}x0dx0achar chrNew[j];x0dx0aint m=0;x0dx0afor(int k =0 ; k<5;k++)x0dx0a{x0dx0a if(chr[k]!="c")x0dx0achrNew[m] = chr[k];x0dx0am++;x0dx0a}x0dx0a此時獲得的chrNew就是新的刪除之後的字元串了x0dx0a基本類型中不支持刪除操作,所以實際上就是一個新的字元串。

㈤ 怎樣用c語言創建一個單鏈表,並執行查找、插入、刪除操作

LinkList *Head(LinkList *p) //創建頭結點{ p=(LinkList*)malloc(sizeof(LinkList));
p->next=NULL; return p;}void Create(LinkList *L,int length) //鏈表的創建,length表示鏈表的長度{ LinkList *p; p=L; int i=0; while(i<length) { s=(LinkList*)malloc(sizeof(LinkList));
scanf("%d",&s->data);
s->next=NULL;
p->next=s;
p=s;
i++; }}int Search(LinkList *L,int n) //查找
{
LinkList *p;
p=L->next;
while(p!=NULL && p->data!=n)
p=p->next;
if(p==NULL)
return 0;
else
return 1;
}void Insert(LinkList *L) //插入
{
LinkList *p,*s;
p=L;
while(p->next!=NULL)
p=p->next;
s=(LinkList*)malloc(sizeof(LinkList));
scanf("%d",&s->data);
s->next=NULL;
p->next=s;
p=s;
}void Delete(LinkList *L,int n) //刪除鏈表中的結點
{
LinkList *p,*q;
p=L;
q=p->next;
while(p->next!=NULL && q->data!=n)
p=p->next;
p->next=q->next;
free(q);
}

㈥ C語言 編寫程序,在一個整型數組中查找某個數並將其刪除。(要求用指針)

寫了個,全都用指針。

#include<stdio.h>
intmain()
{
inta[10],n;
int*p1,*p2;

printf("Input10numbers:");
for(p1=a;p1<a+10;p1++)
scanf("%d",p1);

printf("Inputnumber:");
scanf("%d",&n);
for(p1=a;p1<a+10;p1++)
{
if(*p1==n)
{
for(p2=p1+1;p2<a+10;p2++)
*(p2-1)=*p2;
break;
}
}

if(p1==a+10)
{
printf("Notfound! ");
}
else
{
printf("Found! Thenewarray:");
for(p1=a;p1<a+9;p1++)
printf("%d",*p1);
}

return0;
}

㈦ 編寫程序輸入n個整數,查找並刪除重復的數字,列印結果。(c語言)

#include<stdio.h>
#include<malloc.h>
intmain(void)
{
int*a,n,i,j,k;
scanf("%d",&n);
a=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;++i)
{
for(j=i+1;j<n;++j)
{
if(a[j]==a[i])
{
for(n--,k=j;k<n;k++)
{
a[k]=a[k+1];
}
}
}
}
for(i=0;i<n;++i)
{
printf("%d",a[i]);
}
free(a);
return0;
}

㈧ 數據結構 c語言版 ——順序表的查找、插入與刪除

#include<stdio.h>
#include<stdlib.h>
#define N 10 //順序表的最大容量
int length=0; //順序表的當前元素個數

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100//線性表存儲的空間初始化分配量
#define LISTINCREAMENT 10 //線性表存儲空間的分配增量

typedef struct LNode//線性單鏈表存儲結構
{
int data;
struct LNode *next;
}LNode,*LinkList;

int CreatList_L(LinkList&L)//創建一個線性鏈表
{
L=(LinkList)malloc(sizeof(LNode));//分配一個空間給鏈表,作為頭結點

if(!L) exit(OVERFLOW);
L->next=NULL;
return OK;
}
int DestroyList_L(LinkList &L)//銷毀鏈表
{
if(L) free(L);
return OK;
}
int ListInsert_L(LinkList&L,int i,int e)//再練表的第i個元素前插入一個元素e
{
LinkList p=L;//p指針定位於i-1
LNode *s;
int j=0;
while(p&&j<i-1) {p=p->next;j++;}//定位
if(!p||j>i-1) return ERROR;//如果i<1或大於鏈表元素個數+1
s=(LNode*)malloc(sizeof(LNode));
if(!s) exit(OVERFLOW);
s->data=e; //完成插入操作
s->next=p->next;
p->next=s;
return OK;
}

int ListDelet_L(LinkList&L,int i,int&e)//刪除鏈表L中的第i個元素,並返回給e;
{
LinkList p=L;
LNode* q;
int j=0;
while(!p&&j<i-1) {p=p->next;j++;}//p指針定位於i-1;
if(!p->next||j>i-1) return ERROR;

e=p->next->data; //完成刪除操作
q=p->next;
p->next=p->next->next;
free(q);
return OK;

}

int ListTraverse_L(LinkList L,int n)//鏈表的遍歷
{
int i=0;
if(!L)return ERROR;
L=L->next;
while(L)
{
if(L->data==n)return i;
L=L->next;
i++;
}

return FALSE;
}

int InverseSingleList_L(LinkList &L)
{
if(!L->next||!L->next->next)//如果鏈表少於2個Node那麼鏈表不需要改變順序
return OK;
LNode *p,*q;
p=L->next; //第一次因為p是最後一個連接所以把p->next設為空
q=p->next;
p->next=NULL;
p=q;
while(p)
{
q=p->next; //用q去保留p後面一個Node;
p->next=L->next;
L->next=p;
p=q;
}
return OK;
}

int main()
{
int List[N];
LinkList L;

int ch,exit='N';
do
{
system("CLS");
printf("\t\t********************************************\n");
printf("\t\t* 1.創建一個順序表 .........(1) *\n");
printf("\t\t* 2.在順序表中查找元表.........(2) *\n");
printf("\t\t* 3.在順序表中插入元表.........(3) *\n");
printf("\t\t* 4.在順序表中刪除元表.........(4) *\n");
printf("\t\t* 5.退出 .........(5) *\n");
printf("\t\t********************************************\n");
printf("\n請選擇操作代碼:");
ch=getchar();

switch(ch)
{
case '1':
printf("\n請輸入十個元素");
CreatList_L(L);
for(length=0;length<N;length++)
{
scanf("%d",&List[length]);
getchar();
ListInsert_L(L,length+1,List[length]);
}
printf("\n創建成功!");
getchar();
break;
case '2':
scanf("%d",&List[0]);
if(ListTraverse_L(L,List[0]))printf("該元素存在該年表的第%d個位置",ListTraverse_L(L,List[0]));
else printf("不存在該元素");
getchar();
break;
case '3':
scanf("%d%d",&length,&List[0]);
ListInsert_L(L,length,List[0]);
system("pause");
break;
case '4':
scanf("%d",&length);
ListDelet_L(L,length,List[0]);
system("pause");
break;
case '5':
printf("\n您是否真的要退出程序(Y/N):");
getchar();
exit=getchar();
break;
default:
getchar();
printf("\n無效輸入,請重新選擇...:");
getchar();
break;

}

}while(exit!='y'&&exit!='Y');

}