1 条题解
-
0
题意分析
题目要求实现一个简单的文本替换功能:将输入文本中的所有英文双引号(
"
)替换为成对的“左双引号”(''
)。具体规则是:- 第一个出现的双引号替换为
- 第二个出现的双引号替换为
''
。 - 后续双引号交替替换为
''
。
解题思路
- 输入处理:逐字符读取输入,直到文件结束(EOF)。
- 双引号检测:遇到双引号时,根据标志位决定替换为左双引号还是右双引号。
- 标志位切换:每次替换双引号后,切换标志位的状态。
- 其他字符:非双引号字符直接输出。
代码
#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
- 上传者