问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

那段程序没小段是什么意思能和我说下么?就是实现txt文件中的查找与替换...

发布网友 发布时间:2024-10-19 07:10

我来回答

1个回答

热心网友 时间:2024-11-05 22:03

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//字符串替换
void file_replace(FILE *fp_in,FILE *fp_out,char *src,char *dst)
{
char c=fgetc(fp_in);//从流中读取字符,读完流指针指向下一个字符
char tmp[100];
int count=0;
while(c!=EOF)//EOF为文件结束标志
{

int pPos=0;//源字符串指针偏移量,或者说是该字符数组下标
if(c!=src[pPos])//如果当前字符不相等
{
fputc(c,fp_out);//输出该字符到目标文件
c=fgetc(fp_in);//继续下一个字符
continue;
}

memset(tmp,0,100);
while(c==src[pPos])//当前字符串相等则继续比较下一个
{
tmp[pPos]=c;
c=fgetc(fp_in);
pPos++;
}

//字符串以‘\0’做结束符
//当前位置为‘\0’说明已找到该字符串
if(src[pPos]=='\0')
{
//计数器+1
count++;
printf("源串已找到!替换%d处\n",count);
//目标字符串写入目标文件
fputs(dst,fp_out);
continue;
}
else
{
fputs(tmp,fp_out);
continue;//如果当前字符不相等,继续下一个字符
}
}
return;
}
void main()
{
char path[100],old_path[100];
printf("请输入文件路径:\n");
gets(path);
strcpy(old_path,path);
FILE *fp_in;
FILE *fp_out;
fp_in=fopen(path,"rt");
fp_out=fopen(strcat(path,".bak"),"wt");
if(!fp_in||!fp_out)
{
printf("File open error!");
return;
}
char src[100],dst[100];
printf("请输入要替换的源串:\n");
gets(src);
printf("请输入要替换的目的串:\n");
gets(dst);
file_replace(fp_in,fp_out,src,dst);
fclose(fp_in);
fclose(fp_out);
char cmd[200]="copy ";
strcat(cmd,path);
strcat(cmd," ");
strcat(cmd,old_path);
system(cmd);
memset(cmd,0,200);
strcat(cmd,"del ");
strcat(cmd,path);
system(cmd);

//main函数就不用我解释了吧,其实字符串替换的原理是重写,而不是真正替换文件的内容
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
以《一件值得我思索的事》为题目的作文,400字以上,大家有什么好意见 —0.0037 用科学记数法表示这个数 0.0037乘以10的100次方用科学计数法得多少 win10重启后防火墙 Win10电脑关闭防火墙后总是弹出提示的处理方法两种方法 win10防火墙关闭后自己打开-(win10防火墙关闭后自己打开了) win10防火墙自动打开 怎样才能把初中生的教育做好呢?家长应该如何与孩子沟通呢? 通讯录好友给他本人的通讯录好友点赞收藏我能看到吗 苹果软件官方下架了怎么下载苹果应用商店已经下架的app怎么安装 酸奶没法冷藏 女人梦见很多很大的石貔貅很多人点火去烧我也跟风点火弹了一下!后来... 第二十二届国际科学与和平周全国中小学生(江苏区)金钥匙科技竞赛初中个 ... 上海市化工职业病防治院医院概述 酸牛奶能在常温中保存多久 上海市化工职业病防治院职能部门 第二十二届国际科学与和平周全国中小生(江苏地区) 金钥匙科技竞赛 初中... 第25届国际科学与和平周全国中小学生(江苏地区)"通鼎光电"杯金钥匙科技... 第25届国际科学与和平周中小学生【江苏地区】江苏通鼎... 从《红楼梦》中赵姨娘的不安分,看清朝侍妾的身份地位 凯美瑞天籁哪个好 大学校庆活动活动策划书 凯美瑞和天籁哪个车好点? 全民飞机大战下一架新战机是雪皇还是济公活佛 在自己的qq空间里,怎么删除别人的访问记录? 全民飞机大战12月20号到底出不出新飞机啊 诺基亚610手机用户求高手指点 诺基亚610 win7.5升到7.8怎么弄??? 诺基亚Lumia系列610/510可以从WP7.5可以升级到WP7.8了 我的诺基亚610已经是7.8的现在又有更新,请问是更新什么版本 浙江考生,今年高考文科596分,求填如何写志愿 2010年浙江高考成绩596 去哪个大学的哪个专业比较好 浙江杭州本地最好... 2012浙江高考成绩596报一本还是二本 港澳台联考的教材问题! 我的hp pavilion dv2000重装完系统后,关机时总会自动更新,但是一个晚上... 我的笔记本电脑是HP dv2000的,以前的系统是Vista的,我把它用Ghost XP... HP dv2000本本显卡问题 我的惠普DV2000笔记本无法安装XP HP dv2000 vista系统出现以下故障信息: 问题事件名称:StartupRepairV2... 维罗纳组合All For Love veronaAll For Love all for love专辑简介 all for love游戏音乐All for love all for loveVerona简介 劳拉·西蒙尼All For Love ALLFORLOVE至爱15首曲目 按照规定上户口需要啥手续? 南京丰鸣健康科技有限公司怎么样? 形容口才没变的小成语 肾阳虚和肾阴虚饮食上要注意些什么
  • 焦点

最新推荐

猜你喜欢

热门推荐