中易网

c语言替换txt文件中某个单词

答案:2  悬赏:30  
解决时间 2021-02-03 21:32
写一个叫filter的程序,要求读取一个名为input.txt的文件,当用户在终端输入./filter A B <input.txt时,能把input.txt里所有的A都换成B,A和B是任意两个单词,区分大小写,比如Apple和apple是两个不一样的词。如果用户没有说明要更换什么词,就显打印一条消息说需要两个变量。谢谢!
最佳答案
#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int main(int argc,char* argv[]){//从主函数的参数中获取命令行参数

    string str;

    //判断参数数量是否满足要求
    if(argc < 3){
        cerr << "Fatal error: expect two words in the command line." << endl;
        return 1;
    }

    bool flag = true;
    int length = strlen(argv[1]);
    //进行替换操作
    while(getline(cin,str)){
        for(string::size_type t = 0;t < str.size();t += length){
            if((t = str.find(argv[1],t)) == str.npos){
                break;
            }
            str.replace(t,length,argv[2]);
        }
        if(flag){
            cout << str;
            flag = false;
        }else{
            cout << '\n' << str;
        }
    }

    return 0;

编译:
g++ filter.cc -o filter
运行:
cat input.txt | ./filter A B > output.txt
全部回答
#include #include main() { file *fp,*fw; char line[256]={0},total[1024]={0}; fp=fopen("data.txt","r"); while (fgets(line,256,fp)) { if (strcmp(line,"you\n")==0) { strcpy(line,"they\n"); } strcat(total,line); } fclose(fp); fw=fopen("data.txt","w"); fprintf(fp,"%s",total); fclose(fw); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天降大任于斯人也,完整名言
使用游戏外挂会导致银行账号密码丢失吗?
昨晚晚上8点朋友用用建设银行网银给我储蓄卡
C语言,如果我判断一个二维数组a[i][j]为空输
表示旋转的英语有哪些啊 单词
月光宝盒网吧我想知道这个在什么地方
有没有比较绕嘴的网名
东风天龙前双后单9,6米220马力的康机价是多
雪康整骨养骨所在什么地方啊,我要过去处理事
捷波朗Jabra BT620s和飞利浦philips SHB6110
到药房买药没处方怎么办,在哪些地方才能开到
成都东客站那边有没有比较集中的美食街呀?有
谁可以帮我查下这个车牌号的车主叫什么名字,
求全国外语翻译证书三级和二级的比较,我英语
金瑞五金水暖这个地址在什么地方,我要处理点
推荐资讯
万达广场3号门在什么地方啊,我要过去处理事
松下GF2,索尼NEX5,奥林巴斯EPL2哪个好?
我有三个家人的英文
电影《大空头》都看懂了吗
万鑫隆超市在哪里啊,我有事要去这个地方
有什么验机的app
黑龙江省农垦九三管理局卫生局卫生监督所怎么
新款朗逸故障代码OX5649和OX18105什么意思
南眉村民委员会地址在哪,我要去那里办事
兴业信用卡21号账单日,18号先还款,22号再消
民间借贷,借款人判刑,已经支付的利息高出借款
夏维怡购物中心地址有知道的么?有点事想过去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?