十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
帮你优化了一下,你试试,希望对你有帮助
成都创新互联公司拥有十余年成都网站建设工作经验,为各大企业提供成都网站建设、网站设计服务,对于网页设计、PC网站建设(电脑版网站建设)、app开发定制、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、域名与空间等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。
void deletes(FILE **fp,char *fnames) //如果想带回fp,fp需要传地址
{
FILE *fq;
char names[SIZE];
char temp[SIZE];
printf("请输入要删除的姓名:");
gets(names);
fq=fopen("a.txt","w");
while( !feof( *fp) )
{
if ( fgets(temp,100,fp) == NULL ) //每次读一行,到文件尾结束循环
break ;
if(strstr(temp,names)==NULL) //如果该行中没有names就保存到新文件
fputs(temp,fq);
}
fclose(*fp);
fclose(fq);
remove(fnames);
rename("a.txt",fnames);
*fp=fopen(fnames,"a+");
}
调用时注意fp要加取地址符!!
那么久都没人答复你!我来明确告诉你,答案就是——没有!
解决办法:可以将一行跳过,然后将剩下的拷贝去另一个文件,然后删除源文件,改名字,基本上是这样的了~
楼主的意思是在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]);
}
}
#includestdio.h
void dele(char *s,char ch);
void main()
{
char s[80],ch;
printf("please input s[80]\n");
gets(s);
printf("please input ch\n");
ch=getchar();
dele(s,ch);
}
void dele(char *s,char ch)
{
int i,j;
for(i=0;s[i]!='\0';i++)
if(ch==s[i])
{
for(j=i+1;s[j]!='\0';j++)
s[j-1]=s[j];
s[j-1]='\0';
}
printf("整理后的字符串是:");
puts(s);
}