substr是C++中用于提取子串的string成员函数,语法为substr(pos, len),从pos开始截取最多len个字符;示例包括提取”Hello, World!”中”World”或后缀,常用于获取文件名或扩展名,需注意pos越界会抛异常,但允许pos等于字符串长度返回空串。

在C++中,substr 是 std::string 类的一个成员函数,用于从字符串中提取子串。它使用简单,功能强大,是处理字符串截取的常用方法。
函数原型
string substr(size_t pos = 0, size_t len = npos) const;
该函数有两个参数:
pos:起始位置(索引),默认为0,即从开头开始 len:要截取的字符个数,如果超出字符串长度,则截取到末尾
返回值是一个新的 string 对象,包含指定的子串。
立即学习“C++免费学习笔记(深入)”;
基本用法示例
假设有一个字符串:
std::string str = "Hello, World!";
从第7个字符开始,截取5个字符:str.substr(7, 5) → 结果是 “World” 从第7个字符开始,截取到末尾:str.substr(7) → 结果是 “World!” 只取前5个字符:str.substr(0, 5) → 结果是 “Hello”
注意事项
使用 substr 时需注意以下几点:
索引 pos 必须小于字符串长度,否则会抛出 std::out_of_range 异常 如果 pos 等于字符串长度,允许操作,返回空字符串 len 可以大于剩余字符数,函数会自动调整为到末尾为止
例如:
std::string s = "abc";std::cout << s.substr(3, 2); // 合法,返回空串std::cout << s.substr(4, 2); // 抛出异常!位置越界
实际应用场景
常见用途包括:
提取文件扩展名:filename.substr(filename.find_last_of('.') + 1); 获取路径中的文件名:path.substr(path.find_last_of('/') + 1); 分割字符串(配合 find 使用)
基本上就这些。掌握 substr 的用法,能让你更灵活地处理字符串截取任务。注意边界检查,避免运行时异常。
以上就是c++++中string的substr怎么用_c++字符串截取函数使用方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1480096.html
微信扫一扫
支付宝扫一扫