C++ ——— 学习并使用 string 类

news/2025/1/18 14:10:20/

目录

学习 string 类

使用 string 类

实例化一个无参数的 string 对象

实例化一个带参数的 string 对象

合并两个字符串(重载了加运算符)

通过重载[]访问每个字符

迭代器遍历每个字符

范围 for 遍历每个字符


学习 string 类

何为 string 类:

string 类是一个管理字符数组的对象,也就是一个管理字符的顺序表

调用 string 类所需要的头文件:

#include<string>

使用 string 类

实例化一个无参数的 string 对象

string s1;

string 类重载了流插入和流提取,所有可以手动插入数据:

实例化一个带参数的 string 对象

string s2("hello world");

同样可以直接流输出打印:

合并两个字符串(重载了加运算符)

string s1("hello ");
string s2("world");string ret = s1 + s2;

代码验证:

除了字符串和字符串拼接,字符串还可以和常量字符串拼接,或者合并拼接

代码演示:

string s1("hello");
string s2("world");string ret = s1 + " " + s2 + "!!!";

代码验证:

通过重载[]访问每个字符

代码演示: 

string s1("hello world");for (int i = 0; i < s1.size(); i++)
{cout << s1[i] << " ";
}

s1.size() 可以直接获取字符个数

代码验证:

重载的 [] 不仅有读的作用,也有写的作用:

string s1("hello world");for (int i = 0; i < s1.size(); i++)
{if (s1[i] != ' '){s1[i] = '*';}
}

把字母全改为 '*' 号

代码验证:

迭代器遍历每个字符

string::iterator it = s1.begin();while (it != s1.end())
{cout << *it << " ";it++;
}

后续会将迭代器的底层逻辑一一实现出来,现在只需要知道如何使用即可

s1.begin() 是类似指向字符串首字符的指针,s1.end() 是指向字符串尾字符下一个位置,也就是 '\0' 的位置的指针,再通过 it 遍历

代码验证:

范围 for 遍历每个字符

string s1("hello world");for (auto e : s1)
{cout << e << " ";
}
cout << endl;

auto 自动识别类型,e 自动接收自动递增并结束

代码验证:


http://www.ppmy.cn/news/1564169.html

相关文章

指针的进阶

指针的主题&#xff0c;我们在初级阶段的《指针》章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1. 指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2. 指针的大小是固定的4/8个字节&#xff08;32位平台/64位平台&#xff0…

MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互

在现代应用中&#xff0c;数据库是不可或缺的一部分。Java 作为一种广泛使用的编程语言&#xff0c;提供了丰富的 API 来与各种数据库进行交互。本文将详细介绍如何在 Java 中连接 MySQL 数据库&#xff0c;并实现基本的数据交互功能。 一、环境准备 1.1 安装 MySQL 首先&am…

大语言模型训练的基本步骤解析

一、引言 大语言模型&#xff08;LLMs&#xff09;在当今人工智能领域取得了令人瞩目的成就&#xff0c;从智能聊天机器人到文本生成、语言翻译等广泛应用&#xff0c;深刻改变着人们与信息交互的方式。这些模型展现出强大的语言理解和生成能力背后&#xff0c;是一套复杂而精妙…

【OpenCV(C++)快速入门】--opencv学习

0 配置环境 配置环境网上很多资料&#xff0c;这里就不赘述了。 笔者使用的是VS2022opencv4.9.0 测试配置环境 // 打开摄像头样例 #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgcodecs/imgcod…

网络安全中攻击溯源有哪些方法?

目前网络攻击已经成为常见的安全威胁之一&#xff0c;其造成的危害和损失都是不可估量的&#xff0c;因此网络攻击受到了高度重视。而当我们遭遇网络攻击时&#xff0c;攻击溯源是一项非常重要的工作&#xff0c;可以帮助我们迅速发现并应对各类网络攻击行为&#xff0c;那么网…

Python基本概念与实践

Python语言&#xff0c;总给我一种“嗯&#xff1f;还能这么玩儿&#xff1f;”的感觉 Python像一个二三十岁的年轻人&#xff0c;自由、年轻、又灵活 欢迎一起进入Python的世界~ 本人工作中经常使用Python&#xff0c;针对一些常用的语法概念进行持续记录。 一、类与常见数据结…

《机器学习》——SVD(奇异分解)降维

文章目录 SVD基本定义SVD降维的步骤SVD降维使用场景SVD 降维的优缺点SVD降维实例导入所需库定义SVD降维函数导入图像处理图像处理图像打印降维结果并显示处理后两个图像的对比图 SVD基本定义 简单来说就是&#xff0c;通过SVD&#xff08;奇异值分解&#xff09;对矩阵数据进行…

vulnhub靶场【Raven系列】之2 ,对于mysql udf提权的复习

前言 靶机&#xff1a;Raven-2&#xff0c;IP地址为192.168.10.9 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.2 都采用虚拟机&#xff0c;网卡为桥接模式 文章所用靶机来自vulnhub&#xff0c;可通过官网下载&#xff0c;或者通过链接:https://pan.quark.cn/s/a65…