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

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.dtcms.com/a/271078.html

相关文章:

  • Docker 搭建 Harbor 私有仓库
  • Elasticsearch RESTful API入门:全文搜索实战(Java版)
  • 【Oracle报错】[INS-13001] 环境不满足最低要求。
  • 以太网基础④IP 协议介绍与 IP 校验和算法实现
  • 逆向 qq 音乐 sign,data, 解密 response 返回的 arraybuffer
  • 在 Coze 平台工作流开发中,使用图生视频大模型需要时间比较长比如5分钟,如何解决工作流运行超时的问题以及等在视频生成以后再向下走
  • JavaEE初阶第八期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(六)
  • Jmeter进阶篇(35)完美解决Jmeter转换HTML报告报错“Begin size 0 is not equal to fixed size 5”
  • git中的指令解释
  • 详解CAN总线的位填充机制
  • 【学习笔记】计算机操作系统(七)—— 文件管理
  • 全志H616开发学习文档
  • prometheus+grafana接入kafka实战
  • Python管理咨询数据可视化实战:收入分布与顾问利用率双轴对比图表生成脚本
  • 基于BRPC构建高性能HTTP/2服务实战指南
  • python之requests库解析
  • 1️⃣理解大语言模型
  • 【时时三省】(C语言基础)通过指针引用数组
  • 阿里开源WebSailor:超越闭源模型的网络智能体新星
  • 疏锦行Python打卡 DAY 54 Inception网络及其思考
  • HTML + CSS + JavaScript
  • 字体 Unicode 区块字符展示 PDF 生成器
  • Ubuntu重装系统后ssh连接不上(遇到 ​​“Unit ssh.service not found“​​ 错误)
  • kubernetes存储入门
  • Spring Boot + Vue.js 全栈开发:从前后端分离到高效部署,打造你的MVP利器!
  • 【05】MFC入门到精通——MFC 为对话框中的控件添加变量 和 数据交换和检验
  • 【01】MFC入门到精通—— MFC新建基于对话框的项目 介绍(工作界面、资源视图 、类视图)
  • Flink-1.19.0源码详解6-JobGraph生成-后篇
  • AJAX总结
  • Flink1.20.1集成Paimon遇到的问题