C++ 从字符串中删除字符

标签 c++ string character stdstring erase

我目前正在尝试用 C++ 实现从文本字段中删除字符。如果用户按下 Backspace,则执行以下代码。当前没有光标,它应该只删除最后一个字符...

if (mText.length() > 0){
    mText.erase( mText.length() - 1, 1);
    // mText.resize(mText.length() - 1);
}

第一次工作正常,但如果您再次按 Backspace,它不会删除任何内容。

我打印了mText.length(),它显示长度永远不会改变。我尝试resize()字符串,它工作正常,但是当我第一次按退格键时,它删除了2个字符。

我希望有人可以解释这种行为并帮助我解决问题。我对内存分配不太了解,所以请耐心等待;)

谢谢
oput

最佳答案

根据this 、带有单个 size_t 参数的 string.erase 将删除从指定位置到字符串末尾的所有字符。可以提供第二个 size_t 参数来表示要删除的字符数。

我使用 http://www.ideone.com 检查了它是否按预期工作。 (查看 here )并检查 string::length() 是否按预期工作。

我认为问题出在其他地方..

关于C++ 从字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704388/

相关文章:

Json 意外字符 

Python - 无法重命名文件名中包含特殊字符的文件

c++ - 我如何在 ubuntu 中分析 TLB 命中和 TLB 未命中

c++ - 我如何将 C++ 字符串转换为 int?

c++ - 是否需要在noexcept运算符中进行std::decay?

java - java中如何根据条件分割字符串

java - 如何将包含转换为 equals.ignorecase?

php - 如何使用 PHP 以任意顺序(12 个字母,其中 6 个字母组成一个单词)进行字符搜索?

c++ - 为什么 stoi 比没有 -O3 的 stringstream 慢得多?

python - 如何在 Python 中使用 glob 将字符添加到文件名?