当前位置: 首页 > news >正文

[C++] STL - string部分函数小合集

1.STL是什么?

STL, Standard Template Librarty的缩写, 翻译成中文就是标准模版库.

  • 算法
  • 容器: 存放数据的东西(数据类型)
  • 迭代器: 一种用于遍历容器(如vector、list、map等)中元素的对象.

2.string 本身用法

2-2.string库导入

肥肠的简单(非打错字):

#include <string>

2-1.定义与赋值

两种方法:

string yoursname("...");
string yoursname = "...";

3.string 成员函数

3-1.substr()函数

用于从字符串中提取子字符串. 参数:(start, length)

string s("Hello Frog!");

cout << s.substr(0, 4);
// 此时应该输出o Frog!

3-2.find()和rfind()函数

find(): 从前往后查找元素, 返回下标

rfind(): 从后往前查找元素, 返回下标

注意: 找不到会返回string::npos, 是string类的一个常量, 本质上是无符号(unsigned)的-1.

用法:

string s("Hello world");                 // 相当于string s = "Hello world!";
cout << s.find('l') << endl;             // 第一次出现'l'的下标, 应输出2
cout << s.find('u') << endl;             // 找不到'u', 应输出string::npos
cout << s.find("wor") << endl;           // 返回"wor"的位置, 应输出6
cout << s.find("l", 4) << endl;          // 从下标为4的位置开始搜索子串"l", 应输出9
cout << s.rfind('l') << endl;            // 返回最后一次出现'l'的下标, 应输出9

3-3.erase()函数

功能: 删除子串

用法:

string s1("Real Steel");
s1.erase(1, 3);
// 删除子串(1, 3), 此时s1为"R Steel", 子串表示: (start, length)

s1.erase(5);
// 删除下标5以及后面的所有字符, 此时s1 = "R Ste"

3-4.replace()函数

功能: 将子串替换为其他字符(串)

用法:

// 用法1
string s1("Harry Potter");
s1.replace(2, 3, "XXX")
// 子串"rry"被替换为"XXX", s1此时为"HaXXX Potter"
// 子串表示为(start, length)

// 用法2
string s2("Real Steel");
s2.replace(1, 3, "123456", 2, 4);
// 此时s2为"R3456 Steel"

3-4.stoi(), stoll(), stod()函数

函数功能记忆方法
stoi();字符串转intstoi是string to int的缩写
stoll();字符串转long longstoll是string to long long的缩写
stod();字符串转doublestod是string to double的缩写
string s("1234567")
cout << s.stoi() << endl << s.stoll() << endl << s.stod();
// 输出:
// 1234567
// 1234567
// 1234567.0

3-5. to_string()函数

将short, int, long long等数据类型转化成string.

string s = to_string('12.34');
cout << s;

// 输出: 12.34

3-6. reverse()函数

注意!!!该函数在<algorithm>库内!!!

string s('Hello Frog!');
cout << reverse(s.begin(), s.end()) << endl;

// 输出: !gorF olleH
// (此段输出本蛙打得很痛苦)
http://www.dtcms.com/a/99683.html

相关文章:

  • 晋升系列6:专项提升
  • PHP 包含:深入理解与最佳实践
  • 软件工程面试题(十二)
  • Redisson延迟队列实战:分布式系统中的“时间管理者“
  • day5_Flink基础
  • 前端快速系统学习Rust的路径
  • Python 状态模式
  • 在React中处理API请求和数据
  • fastapi+vue在线小说系统
  • 练习题:111
  • python基础学习三(元组及字符串的使用)
  • 红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules)
  • Masked Attention 在 LLM 训练中的作用与原理
  • 408 计算机网络 知识点记忆(1)
  • 代码随想录刷题day53|(二叉树篇)106.从中序与后序遍历序列构造二叉树(▲
  • 如何使用 Bash 脚本自动化清理 Nacos 日志文件
  • Postman 集合如何快速分享给团队?
  • 树莓派5学习踩坑指南1--摄像头识别,SSH VNC远程连接,忘记密码重新登录
  • SHELL 三剑客
  • ModbusTCP协议报文详细分析
  • 安卓开发之LiveData与DataBinding
  • Next.js 项目生产构建优化
  • 【leetcode hot 100 45】跳跃游戏Ⅱ
  • 第三百八十九节 JavaFX教程 - JavaFX WebEngine
  • uniapp-小程序地图展示
  • C++的模板(十四):更多的自动内存管理
  • AI的未来在手机里!
  • Spring Data审计利器:@LastModifiedDate详解(依赖关系补充篇)!!!
  • springBoot与ElementUI配合上传文件
  • Vue2——常用指令总结、指令修饰符、v-model原理、computed计算属性、watch监听器、ref和$refs