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

C++STL-String

一.String用法

1.用于字符串定义,形如:

    //C语言里面的字符串定义char a[100] = "你好呀";cout << a << endl;//String用法string b = "你好呀";cout << b << endl;

2.String对象的创建

1. 无参构造string s1;
cout << s1 << endl;
2. 初始化列表string s2({ 'h', 'e', 'l','l', 'o' });
cout << s2 << endl;
3. 字符串初始化string s3("你好呀");
cout << s3 << endl;
4. 字符串的前n个字符string s4("你好呀", 6);
cout << s4 << endl;//显示6个字符数据
5. 拷贝构造string s5(s4);
cout << s5 << endl;
6. a 个 字符 bstring s6(8, 'o');
cout << s6 << endl;

3.String赋值操作

1. 字符串常量的赋值string s1;
s1 = "你好呀";
s1 = 'x';
2.字符串变量的赋值string s2;
s2 = s1;
3. assign v1string s4;
s4.assign("你好呀");
4. assign v2string s5;
s5.assign("你好呀", 4);
5. assign v3string s6;
s6.assign(s5);
6. a个bstring s7;
s7.assign(8, '6');

4.String拼接操作

1. +string s1 = "你";
string t1 = "好";
s1 = s1 + "呀";        // const char*
s1 = s1 + t1;            // const string&
s1 = s1 + ';';           // char
2. +=string s2 = "你";
string t2 = "好";
s2 += "呀";        // const char*
s2 += t2;            // const string&
s2 += ';';           // char
3. appendstring s3 = "你";
string t3 = "好";
s3.append("呀");
s3.append(t3);
s3.append("5201314", 3);     // 3 代表取前三个数
s3.append("5201314", 3, 4);  // 3 代表从第3个开始,4代表取4个元素
4. push_backstring s4 = "你好呀";
s4.push_back('6');

5.String比较操作

1. compare,这个函数会返回三个值-1,0,1;当左边>右边时,返回1;当左边=右边时,返回0;当左边<右边时,返回-1;

string s1 = "aab";

string t11 = "aab";
int r11 = s1.compare(t11);//因为相等,所以返回值为0

string t12 = "aaa";
int r12 = s1.compare(t12);//因为aab>aaa,所以返回值为1

string t13 = "aac";
int r13 = s1.compare(t13);//因aab<aac,所以返回值为-1

string t14 = "aaba";
int r14 = s1.compare(t14);//因为aab,比aaba短,所以小,所以返回-1

string t15 = "aa";
int r15 = s1.compare(t15);//因为aab,比aa长,所以大,所以返回1

2. < > == <= >= ,而这个符号只会返回0,1

cout << s1 << " == " << t11 << " -> " << (s1 == t11) << endl;////因为相等,所以返回值为1


cout << s1 << " != " << t11 << " -> " << (s1 != t11) << endl;//因为相等,而他说他们俩不等,所以返回值为0


cout << s1 << " < " << t12 << " -> " << (s1 < t12) << endl;//因为aab>aaa,所以返回值为1

6.String随机访问

1.[ ]直接访问

string s = "I love you 1314";

s[1]

2.at()函数访问s.at(1)
3.值的修改s[12] = '2';
s.at(13) = '0';

7.String数据插入

    string s1 = "Heworld";s1.insert(2, 2, 'l');//在第2个元素位置,插入2个ls1.insert(4, "o ");//在第4个元素位置插入os1.insert(s1.size(), "哈哈");//在最后面插入“哈哈”s1.insert(s1.begin(), ':');//最前面插入“:”,迭代器只能插入一个字符

8.String数据删除

s1.erase();全部删除
s1.erase(7);从第7个位置开始,全部删除
s1.erase(7, 3);从第7个位置开始删除3个
s1.erase(s1.begin());删除第一个元素,迭代只能删1个
s1.erase(s1.begin()+7, s1.begin()+10);删除第7-10个元素

9.String数据查找

s1 = "Hello woooorld";
s1.find("oooo") 
返回值是位置
s1.find("oooo", 5) 从第5个位置开始找“oooo”
s1.rfind("oo") 从右往左找

10.String数据替换

s = "Hello woooorld";
s.replace(7, 5, "or");
从第7个位置开始,后面5个元素变成“or”
s.replace(s.begin() + 7, s.begin() + 12, "or");从第7个位置开始,到第12位置,也就是后面5个元素变成“or”
s.replace(s.begin() + 7, s.begin() + 12, "oranddjkfgjdfigjkdfgdfj", 2);从第7个位置开始,到第12位置,也就是后面5个元素变成从"oranddjkfgjdfigjkdfgdfj"里选前两个变成“or”

11.String获取数据

string s3 = s2.substr(0, 4);从第0个位置开始,获取4个元素
string s4 = s2.substr(2);从第2个位置开始,获取后面所有元素

http://www.xdnf.cn/news/15115.html

相关文章:

  • 题解:P13017 [GESP202506 七级] 线图
  • spring-data-jpa + Alibaba Druid多数据源案例
  • Flutter基础(前端教程⑧-数据模型)
  • NHibernate案例
  • thinkphp使用redis抢单实例
  • 提取出Wallpaper Engine壁纸的mpkg类静态壁纸
  • LKT4304稳定可靠高兼容性国产安全加密芯片
  • Linux操作系统之进程间通信:管道概念
  • Qt6中模态与非模态对话框区别
  • 基于Spring Boot+Vue的巴彦淖尔旅游网站(AI问答、腾讯地图API、WebSocket及时通讯、支付宝沙盒支付)
  • 以太网基础④IP 协议介绍与 IP 校验和算法实现
  • Deepseek搭建智能体个人知识库
  • HashMap的get与put流程源码深度解析
  • 详解CAN总线的位填充机制
  • LLM的表征做减法的是什么,自然语言是一个矩阵,怎么进行减法的
  • S7-1500——(一)从入门到精通1、基于TIA 博途解析PLC程序结构(二)
  • 服务器中source: not found解决方法
  • AP中的Execution Manager“非报告进程”和“伴随进程”概念解析
  • Django核心知识点详解:JSON、AJAX、Cookie、Session与用户认证
  • RAG实战之dify源码文件解析-pdf文件解析流程
  • QT6 源(158)模型视图架构里的文件系统模型 QFileSystemModel 篇一:属性,成员函数,与信号函数
  • 在 macOS 上安装与自定义 Oh My Zsh:让终端美观又高效 [特殊字符]
  • Microsoft AZ-305 Exam Question
  • Git常用指令
  • Python-文件操作
  • 如何将 AWS EBS 卷从 gp2 批量迁移到 gp3:完整指南
  • RabbitMQ 高级特性之事务
  • FPGA加速HMI实时渲染:复杂图形处理的并行计算方案
  • 【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法
  • 5.注册中心横向对比:Nacos vs Eureka vs Consul —— 深度解析与科学选型指南