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++笔记——string容器介绍 -> 正文阅读

[系统运维]C++笔记——string容器介绍

目录

一,string构造函数

二,赋值操作

三,字符串拼接

四,字符串查找与替换

五,字符串比较

六,字符存取

七,字符串插入和删除

八,字串获取

使用操作——从邮箱地址中获取用户名信息


前提:

使用string容器要包含头文件

#include<string>

本质:

  • ? string是C++风格的字符串,而string本质上是一个类。

string和char*的区别:

  • ?char*是一个指针。
  • ?string是一个类,类内封装了char*,管理这个字符串,是一个char*型的容器。

一,string构造函数

  1. string s1;? //创建空字符串

? ? ? ? ?const char* str = "hello world";

? ? ? ? ?string s2(str);??? //初始化

? ? ? 2.string s3(s2);??? //使用一个string对象初始化另一个string对象

? ? ? 3.string s4(5, 'a');???? //使用n个字符a初始化

??????????????????????????? //string(int n,char c);

二,赋值操作

  1. string s1;?

? ? ? ? ?s1 = "hello world";? //char*型字符串,赋值给当前字符串

? ? ? 2. string s2 = s1;? //字符串s1,赋值给s2

? ? ? 3. string s3;

? ? ? ? ? s3 = 'a';? //字符赋值给当前字符串

? ? ? ?4. string s4;

? ? ? ? ? ?s4.assign("hello world");? //字符串s赋值给当前字符串

? ? ? ?5. string s5;

? ? ? ? ? ?s5.assign("hello world", 5);? //把字符串s的前n个字符赋值给当前字符串

? ? ? ?6. string s6;

? ? ? ? ? ?s6.assign(s5)? ;//把字符串s赋值给当前字符串

? ? ? ?7. string s7;

? ? ? ? ? ?s7.assign(10, 'a');? //把n个字符c赋值给当前字符串

三,字符串拼接

  1. ? ?string s1="独取";

? ? ? ? ?s1 += "一瓢C++";

? ? ?2.? ? s1 += ';';? //追加一个字符

? ? ?3.? ? string s2="lol我是";

? ? ? ? ? ? s2 += s1;

? ? ?4.? ? string s3="i";

s3.append(" love ");

? ? ?5.? ? s3.append("gamesferg", 5);? //把字符串s的前n个字符拼接到当前字符串

? ? ?6.? ? s3.append(s2);

? ? ?7.? ? s3.append(s2,0,3);?? //从第0个位置,截取三个字符

四,字符串查找与替换

1,查找

? ? ?string s1 = "abcdefg";

? ? ?int p1=s1.find("de");

? ? ?/* 查找字符串在当前字符串的位置,默认是从第0个位置开始查找,

? ? ?find函数返回值是整形数据,若未找到,则返回-1 */

?

? ? ? int p2 = s1.rfind("de");

? ? ?/* find 和 rfind 都可实现查找功能,但区别是:

? ? ?find是从左往右查找,rfind是从右往左 */

2,替换

????? s1.replace(1, 3, "11111");

? ? ?/* replace函数有三个参数,从第1个位置开始,

? ? ?3个字符替换为“11111”*/

五,字符串比较

????? string s1 = "hello";

? ? ? string s2 = "hello";

? ? ? int n = s1.compare(s2);

?比较方式:

  • 字符串比较是按照字符的ASCII码,逐个进行比较,直到比出大小结束

两个字符串相等??????????????????????????? 返回? 0

第一个字符串大于第二个字符串??? 返回? 1

第一个字符串小于第二个字符串??? 返回? -1

六,字符存取

1,通过 [] 访问单个字符

?????? string s1 = "hello";

? ? ? for (int i = 0; i < s1.size(); i++) {

? ? ? ? ? ? ?cout << s1[i] << " ";

? ? ? }

? ? ? 修改字符

? ? ? s1[0] = 'x';

2,通过at方式访问单个字符

????? for (int i = 0; i < s1.size(); i++) {

? ? ? ? ? ? cout << s1.at(i) << " ";

? ? ? }

? ? ? 修改字符

? ? ? s1.at(0) = 'x';

七,字符串插入和删除

1,,字符串插入

?????? string s1 = "hello";

?????? s1.insert(1, "111");? //从第一个位置插入字符串

2,字符串删除

? ? ? ?s1.erase(1, 3);?? //从第一个位置删除3个字符

八,字串获取

功能描述:

  • 从字符串中获取想要的子串

? ? ? string s1 = "hello";

? ? ? string s2 = s1.substr(1, 3);

? ? ? cout << s2;

使用操作——从邮箱地址中获取用户名信息

????? string email = "zhangsan@qq.com";

? ? ? int pos = email.find("@");??????????? //查找字符“@”的位置

? ? ? string userName = email.substr(0, pos);???? //从第0个位置开始,获取pos个字符

? ? ? cout << userName << endl;

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 22:03:22  更:2022-02-05 22:03:34 
 
开发: 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 6:42:41-

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