【c++】C++字符串删除末尾字符的三种实现方法

在C++开发中,经常需要处理字符串末尾字符的删除操作。本文将详细介绍三种常用的实现方法,并提供完整的代码示例和对比分析。

方法对比与实现

使用pop_back()方法

pop_back()是C++11标准引入的方法,可以直接删除字符串的最后一个字符。这种方法简洁高效,但需要确保字符串不为空。

c 复制代码
#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello World!";
    
    if (!str.empty()) {
        str.pop_back();
        cout << "Method 1: " << str << endl;
    }
    
    return 0;
}

使用erase()方法

erase()方法通过迭代器定位要删除的位置,可以更灵活地控制删除操作。需要特别注意迭代器的有效性检查。

c 复制代码
#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello World!";
    
    if (!str.empty()) {
        str.erase(str.end() - 1);
        cout << "Method 2: " << str << endl;
    }
    
    return 0;
}
使用substr()方法

substr()方法通过截取子串来实现删除末尾字符的效果。这种方法需要计算新的子串长度,适用于需要保留部分字符串的场景。

c 复制代码
#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello World!";
    
    if (!str.empty()) {
        str = str.substr(0, str.length() - 1);
        cout << "Method 3: " << str << endl;
    }
    
    return 0;
}
方法对比分析
方法 适用版本 性能 安全性 灵活性
pop_back() C++11+
erase() 所有版本
substr() 所有版本
参考
相关推荐
独好紫罗兰6 小时前
对python的再认识-基于数据结构进行-a003-列表-排序
开发语言·数据结构·python
wuhen_n6 小时前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
不会代码的小测试6 小时前
UI自动化-POM封装
开发语言·python·selenium·自动化
roman_日积跬步-终至千里6 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
毕设源码-钟学长6 小时前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
lsx2024066 小时前
C++ 基本的输入输出
开发语言
CodeSheep程序羊7 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰7 小时前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
I'mChloe7 小时前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言
编程小白20267 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习