乐闻世界logo
搜索文章和话题

Remove last character from C++ string

4 个月前提问
3 个月前修改
浏览次数53

1个答案

1

在C++中,有几种方法可以从字符串中删除最后一个字符。以下是几种常见的方法:

1. 使用 std::string::pop_back()

这是最简单也是最直接的方法。std::string::pop_back() 函数直接从 std::string 对象的末尾移除一个字符。

示例代码:

cpp
#include <iostream> #include <string> int main() { std::string str = "Hello, World!"; str.pop_back(); // Remove last character std::cout << "After pop_back(): " << str << std::endl; return 0; }

这段代码将输出 "Hello, World",最后的感叹号被移除了。

2. 使用 std::string::erase()

std::string::erase() 方法可以用来删除字符串中的一部分。当你只要删除最后一个字符时,可以使用它来指定从字符串的最后一个字符开始,并只删除一个字符。

示例代码:

cpp
#include <iostream> #include <string> int main() { std::string str = "Hello, World!"; str.erase(str.size() - 1); // Remove last character std::cout << "After erase(): " << str << std::endl; return 0; }

这段代码同样会输出 "Hello, World"。

3. 使用下标操作和 std::string::resize()

通过 std::string::resize() 方法,你可以调整字符串的大小。若将大小调整为当前长度减一,则会自动移除最后一个字符。

示例代码:

cpp
#include <iostream> #include <string> int main() { std::string str = "Hello, World!"; str.resize(str.size() - 1); // Resize string to remove the last character std::cout << "After resize(): " << str << std::endl; return 0; }

这段代码的输出也是 "Hello, World"。

以上方法都是有效的,具体使用哪一种取决于具体的应用场景和个人偏好。在大多数情况下,pop_back() 是最直接和高效的方法,特别是当你确定字符串不为空时。对于需要更复杂操作的场景,erase() 提供了更多的灵活性。

2024年6月29日 12:07 回复

你的答案