正文
c语言删除普通函数 c语言调用函数删除字符
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言的删除函数
楼主c语言删除普通函数的意思是在str1中删除str2中出现的字符c语言删除普通函数?那么改成c语言删除普通函数:
#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语言编写一个删除函数删除信息啊
楼上两位说的free只适用于链表
如果用数组 free不行
你可以用覆盖的方法来删除信息 用一条其他新赋值给要被删除的信息
比如a,b都是结构体变量 要删除a可以这样 a=b;
求C语言删除函数运行说明
void del()
{
STU a[20]; char tname[20];
int i=0,j,n=0;
FILE *fp;
printf("\t\t\t请输入要删除的姓名:");
scanf("%s",tname);
/*****以下内容是读取文件信息,并将文件中的信息与用户输入的姓名做比较,如果姓名相同,则删除该学生信息***/
if((fp=fopen("e:\\file1","rb"))==NULL) //打开文件file1
{printf("error!\n");exit(0);} //打开失败,报错并退出系统
while(fread(a[n],sizeof(STU),1,fp)!=0) //打开成功,每次从文件中读入一个STU结构大小的数据,并将其存入数组a[]中。直到文件内容结束。
n++;
/**该循环用于查找**/
for(i=0;in;i++)
if(strcmp(a[i].name,tname)==0) break; //找到姓名相同的学生了,结束循环。
if(i==n) //找完一遍,没找到
{ printf("\t\t\t没有找到!\n");
fclose(fp); //关闭文件file1
}
else //找到了同姓名的学生
{
/**该循环用于删除该学生信息**/
for(j=i;jn-1;j++) //从找到该学生的位置开始,依次把后面的数据前移,覆盖掉前一个
{
a[j]=a[j+1];
}
n=n-1; //学生总数减1
/****以下内容是更新文件,并提示用户删除成功****/
if((fp=fopen("e:\\file1","wb"))==NULL) //再次打开文件file1,把删除之后的信息保存到文件中
{printf("error!\n");exit(0);}
fwrite(a,sizeof(STU),n,fp); //每次往文件中写入一个学生的信息(即一个STU大小)
fclose(fp);
printf("\t\t\t删除成功!\n");
system("pause"); //页面显示诸如“按任意键继续……”
}
}
求大神,关于c语言删除函数
1. 函数开始的时候这两句话没有意义
p=(stud *)malloc(sizeof(stud));
q=(stud *)malloc(sizeof(stud));
你只是用了这两个指针,为它们分配空间一是没必要,二是内存会泄露
2. 看你的代码应该是有头结点的链表,搜索的时候p=head;p初始化为了head,指向了头结点,搜索的时候应该从p-next开始,而你用的while((p!=NULL)(strcmp(p-name,N)!=0)),应该用p-next!=NULL。而且后面删除的时候也删除的是p-next,所以比较的话也应该用p-next:strcmp(p-next-name,N)
怎样用C语言写线性表删除函数(不要复制网上的)
#includeiostream
#includeiomanip
using namespace std;
class list
{
public:
int num,elem;
class list* next;
};
int e;
int del_ptr(list *head,int i)
{list *ptr=head;
if(i0)
{
return 0;
}
int j;
for( j=1;jiptr-next!=NULL;j++)
{
ptr=ptr-next;
}
if(i!=j)
return 0;
else
{
list *top;
top=head;
if(ptr==head)//表头删除节点
{
head=head-next;
cout"已删除编号为"ptr-num"元素c语言删除普通函数!值为c语言删除普通函数:"ptr-elemendl;
e= ptr-elem;
}
else
{
while(top-next!=ptr)
top=top-next;
if(ptr-next==NULL)//表尾
{
top-next=NULL;
cout"已删除编号为"ptr-num"号元素c语言删除普通函数!值为:"ptr-elemendl;
e= ptr-elem;
}
else//中间
{top-next=ptr-next;
cout"已删除编号为"ptr-num"号元素!值为:"ptr-elemendl;
e= ptr-elem;
}
}
}
delete []ptr;
return 1;
}
int main()
{
list *newnode,*pre,*deldd;
deldd = new list;
if(!deldd)
{
cout"error"endl;
exit(1);
}
cout"输入num";
cindeldd-num;
cout"输入元素";
cindeldd-elem;
pre=deldd;
for(int i=1;i5;i++)
{
newnode=new list;
if(!deldd)
{
cout"error"endl;
exit(1);
}
cout"输入num";
cinnewnode-num;
cout"输入元素";
cinnewnode-elem;
newnode-next=NULL;
pre-next=newnode;
pre=pre-next;
}
pre=deldd;
del_ptr(pre,2);
cout"返回c语言删除普通函数的e的值为"eendl;
pre=deldd;
while(pre!=NULL)
{
coutpre-num"_____"pre-elemendl;
deldd=pre;
pre=pre-next;
delete deldd;
}
system("pause");
}
楼主功能已实现!!
C语言编写一个插入删除函数
一般呢c语言删除普通函数,插入和删除函数是分开写c语言删除普通函数的c语言删除普通函数,还有分成两种存储结构,1.顺序表,2.链表,我给c语言删除普通函数你一个我上数据结构时候写的链表的操作,里面全都有,如果不会用,追问我
#includestdio.h
#includemalloc.h
#includeWindows.h
#includeconio.h
#includestdlib.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(pji)
{
p=p-next;++j;
}
if(!p||ji) 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 ji-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语言删除普通函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言调用函数删除字符、c语言删除普通函数的信息别忘了在本站进行查找喔。