替换字符

8 分钟

把字符串里某个字符全部换成另一个,就是从头到尾遍历一遍,遇到目标字符就把那个位置改成新值。string 支持用下标直接改,所以原地替换很方便。

string s = "hello";
for (int i = 0; i < (int)s.size(); i++)
    if (s[i] == 'l') s[i] = 'L';   // 遇到 'l' 就改成 'L'
cout << s << "\n";           // 输出 heLLo

"hello" 里的 'l' 全换成 'L',结果是 "heLLo"。复杂度

注意区分:这里换的是单个字符,一个位置对一个位置;如果要替换的是一段子串(多个字符),长度可能变化,那是另一回事,得用 s.replace 或重新拼接,不能简单下标赋值。坑在于别漏掉相同的多个目标——要用循环扫全串,而不是只改第一个。如果题目要求"生成新串、不改动原串",就另开一个 string,逐字符判断后 push_back 进去。

小纸条

把 "hello" 里的 'l' 全换成 'L',结果是什么?

登录 后可看答案

替换字符 · 考级冲刺 · op599 课程