第四题4、编写一段出现,删除文本中的指定字符串。

#include <iostream>  
#include <fstream> 
#include <string>  
using namespace std;  

int main() {  
    ifstream fileIn("1.3.4.txt"); // 假设输入文件名为input.txt  
    ofstream fileOut("output.txt"); // 输出文件名为output.txt  
    if (!fileIn || !fileOut) {  

        cerr << "无法打开文件" << endl;  

        return 1;  

    }  

    string removeString = "your_remove_string"; // 替换成你想删除的字符串  
    char ch;  
    bool writing = true;  

    while (fileIn.get(ch)) {  

        if (writing) {  

            fileOut.put(ch);  

        }  

  

        if (ch == removeString[0]) {  

            // 检查是否匹配整个字符串  

            string match;  

            match.push_back(ch);  

            size_t i = 1;  

            while (i < removeString.size() && fileIn.get(ch)) {  

                match.push_back(ch);  

                if (ch != removeString[i]) {  

                    // 如果不匹配,则将之前匹配的字符写回输出文件  

                    fileOut.write(match.c_str(), match.size());  

                    writing = true;  

                    break;  

                }  

                i++;  

            }  

  

            if (i == removeString.size()) {  

                // 完整匹配,停止写入输出文件  

                writing = false;  

            } else {  

                // 部分匹配,将剩余的字符写回输出文件  

                fileOut.write(match.c_str() + 1, match.size() - 1);  

            }  

        } else {  

            // 如果不是字符串的开头,则继续写入  

            writing = true;  

        }  

    }  

  

    fileIn.close();  

    fileOut.close();  

    cout << "已删除指定字符串,结果保存在output.txt中" << endl;  

    return 0;  

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值