1 条题解

  • 0
    @ 2025-4-21 21:40:03

    题意分析

    题目要求实现一个简单的文本替换功能:将输入文本中的所有英文双引号(")替换为成对的“左双引号”( )和“右双引号”('')。具体规则是:

    1. 第一个出现的双引号替换为
    2. 第二个出现的双引号替换为 ''
    3. 后续双引号交替替换为 ''

    解题思路

    1. 输入处理:逐字符读取输入,直到文件结束(EOF)。
    2. 双引号检测:遇到双引号时,根据标志位决定替换为左双引号还是右双引号。
    3. 标志位切换:每次替换双引号后,切换标志位的状态。
    4. 其他字符:非双引号字符直接输出。

    代码

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
        string line;
        bool isOpenQuote = true; // 标记下一个双引号是否应为左引号
        
        while (getline(cin, line)) {
            for (char c : line) {
                if (c == '"') {
                    if (isOpenQuote) {
                        cout << "``";
                    } else {
                        cout << "''";
                    }
                    isOpenQuote = !isOpenQuote; // 切换状态
                } else {
                    cout << c;
                }
            }
            cout << endl; // 输出换行符(getline会吃掉原换行符)
        }
        
        return 0;
    }
    
    • 1

    信息

    ID
    489
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    3
    已通过
    1
    上传者