十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先要说明的是这里并不是指删除C编译器里面的文件,呵呵,如果只是要删除那些文件的话,那就很简单,直接选中文件后按delete键就可以删除了,但是我们删除那些文件干嘛?我们还要用它写程序啊,呵呵。我在这里要说的是,怎样使用C语言编写程序来删除文件。
创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目成都做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元福清做网站,已为上家服务,为福清各地企业和个人服务,联系电话:18980820575
在C语言中,我们可以使用remove()函数来删除指定的文件,具体语法为:
Int remove(char *filename);其中filename是一个指向字符串的指针,该字符串可以组成有效的文件名,也可以包含路径说明。如果我们要删除D盘下的ABC.txt文件,我们就可以这样写:remove(“D:\ABC.txt”);
在C语言中win32程序运行的入口是main(),如果你写1些.dll、.lib文件,就只需要写导出函数便可,不需要写main()。很多可履行程序都是在main()函数中写1些调用其他程序的代码。再隐藏黑窗口。还有1些情况是使用MFC、QT等gui程序,就不需要main()函数作为入口。总之,main()函数是根据自己需要来选择是不是使用,没有删不删除之说。对建立好的win32程序来讲没有main()是不行的。
c语言中书写删除字符串中某个字符的程序的具体操作步骤如下:
1、编写头函数,包括“#include stdio.h.”与“#include string.h.“。
2、定义两个相同容量的字符串储存的变量 char a【100】; char b【100】。以及整数变量 int c;int i=0,j=0;其中a[100]是存字符串的,b【100】是存你删除对应字符的字符串的,整数C是想删除第几位。j ,i 是后面for循坏中要使用到的变量。
3、编写printf(“请输入你的字符串”);scanf(“%s”,a);printf(“请输入你想要删除第几位字符”);scanf(“%d”,c)。
这几行代码主要是显示界面,以及具体想要删除什么字符串以及具体删除第几位字符使用的。
4、继续编写for(i=0;istrlen(a);i++) ( if(i+1!=c){ b【j】=a【i】; j++;)( printf(" %s",b);)。
这几行代码逻辑语句是:只要当i+1不等于c时把a【i】里面的字符赋给b【i】,那么这样当i+1=c时不把它赋给b【i】从而实现删除功能。
5、程序编辑完毕,可以进行删除字符了。
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)
楼主的意思是在str1中删除str2中出现的字符?那么改成:
#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]);
}
}
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"); //页面显示诸如“按任意键继续……”
}
}