IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> C++ STL <string> string容器 -> 正文阅读

[系统运维]C++ STL <string> string容器

目录?

string容器简介

string容器操作

初始化

操作符重载

赋值操作

取值操作

大小操作

拼接操作

查找操作

替换操作

比较操作

字串操作

插入和删除操作

与字符串的转换


string容器简介

????????C++中基本数据类型并没有字符串变量,虽然C++也可以沿用C的字符型数组来存取字符串数据,但是C++给出了更好的处理方法:string容器,使用时应包含头文件<string>

细节:严格来说,string并不是一个独立的类,而是类模板basic_string的一个特殊化实体,但是这对我们使用者来说并无影响。

string容器操作

以下的s均为以string初始化的一个变量

初始化

string s1;?? ??? ??? ??? ?//调用无参构造
string s2(10, 'a');?? ??? ?//s2初始化放入十个a
string s3("abcdefg");
string s4(s3);?? ??? ??? ?//拷贝构造

	string s1;				//调用无参构造
	string s2(10, 'a');		//十个a
	string s3("abcdefg");
	string s4(s3);			//拷贝构造

操作符重载

s + t?? ?//将s和t连接成一个新串
s = t ? //将t赋给s
s += t ?//同理
s == t ?//判断s和t是否相等
s != t ?//判断是否不等
s < t ? // 判断s是否小于t,同理 > , >= , <
s[i] ? ?//访问下标为i的字符

赋值操作

s = s1(另一个字符串);? ? ? ? //等号重载
s.assign(字符串);

s.assign("abcd");

取值操作

s1 += s2;
s.at(1) = s[1];

大小操作

s.length();?? ??? ?长度
s.size();?? ??? ?容量

拼接操作

s1 += s2;
s1 = s2 + s3;
s1.append(s2);? ? ? ? //将s3拼接到s2后面

查找操作

s.find("ab");? ? ?//从前往后查找ab第一次出现的位置(返回的是下标不是迭代器)
s.rfind("ab");? ? //从后往前

    string s = "abcdefghijabcdefgh";
	//find:查找第一次出现的位置
	int pos = s.find("fg");
	cout << "pos:" << pos << endl;

	//查找最后一次出现的位置
	pos = s.rfind("fg");
	cout << "pos:" << pos << endl;

    //代码返回值:第一次pos为5,第二次pos为15

替换操作

s.replace(0, 2, s);? ? ? ? //从第零个往后替换2个

	string s = "abcdefg";
	//从零号位开始替换两个字符
	s.replace(0, 2, "cd");
	
    //s此时为cdcdefg

比较操作

相等:s1.compare(s2) = 0

字串操作

string sub = s.substr(1, 3); //substr为返回该串中下标1到3的字符

插入和删除操作

s.insert(3, "111");?? ??? ?第三位插入
s.erase(0, 2);?? ??? ??? ?第0位删除2个
reverse(s.begin(), s.end());反转

与字符串的转换

const char* cstr = s.c_str();? ? ? ? //将cstr转化为string
string s(cstr);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //给s初始化为cstr

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:11:44  更:2022-02-26 12:13:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:39:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码