C++初阶--String类的使用

string类

C语言中,我们总是用char* 的类型来创建一个变量,存储一个字符串;当我们想对它进行修改或者读写时,需要自我创建空间和使用string.h的库函数来进行操作它

而在C++中,C++专门提供了一个头文件 string 用一个类对字符串的一系列操作进行了封装;对于底层空间不需要用户自己管理了;

当然该类是basic_string类的一个实例,使用了char来实例化basic_string模板类;
这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。
C++初阶--String类的使用_第1张图片

接下来就详细介绍string类的使用。

创建一个string类的对象

C++初阶--String类的使用_第2张图片
对于string类的使用,我们首先就必须引用它的头文件

#include < string >

string s1; //默认的创建一个String对象
	string s2("One more thing"); //用C-Stirng来创建Strng类的对象s2
	string s3 = s2; //构造拷贝函数
	string s4(s2); //构造拷贝函数

	cout << s1 << endl;
	cout << s2 << endl;
	cout << s3 << endl;
	cout << s4 << endl;

对创建的类进行查看
C++初阶--String类的使用_第3张图片
C++初阶--String类的使用_第4张图片
C++初阶--String类的使用_第5张图片

查看对指定字符串的指定子字符串的使用

	string s5(s2, 5, 6);//复制指定字符串的子串
	cout << s5 << endl;

	string s6(s2, 1); //从第1个元素进行复制构造
	cout << s6 << endl;

	string s7(s2, 5, 100);
	cout << s7 << endl;

在这里插入图片描述
C++初阶--String类的使用_第6张图片
C++初阶--String类的使用_第7张图片
C++初阶--String类的使用_第8张图片

npos
C++初阶--String类的使用_第9张图片

	string s8("One More", 5);//从首个元素复制到指定第5个元素之前
	cout << s8 << endl;

	string s9(5, 'c');//复制5个c字符
	cout << s9 << endl;

C++初阶--String类的使用_第10张图片

赋值操作

赋值时该对象必须是已经存在的;
C++初阶--String类的使用_第11张图片

string s1;
	s1 = 'x';
	s1 = s2;
	s1 = "hello";

遍历和访问

size() 和 lenth()

在这里插入图片描述

C++初阶--String类的使用_第12张图片

操作数[]

可以直接访问对应字符串的元素

C++初阶--String类的使用_第13张图片
C++初阶--String类的使用_第14张图片

逆置字符串

C++初阶--String类的使用_第15张图片
C++初阶--String类的使用_第16张图片

iterator

iterator迭代器,是C++标准库中的一个概念。它是一种对象,用于遍历容器中的元素序列,以访问和处理容器中的元素。
对于string类来说,terator本质上就是就是一个字符串指针,指向字符串的某个位置,从而允许我们遍历容器中的所有元素,而不需要了解string本身的结构和实现细节。

C++初阶--String类的使用_第17张图片

C++初阶--String类的使用_第18张图片

而C++中,有一个reverse的函数模板

C++初阶--String类的使用_第19张图片

const问题

要注意const和会非const的区别

C++初阶--String类的使用_第20张图片

C++初阶--String类的使用_第21张图片
C++初阶--String类的使用_第22张图片

rbegin()和rend()

C++初阶--String类的使用_第23张图片

C++初阶--String类的使用_第24张图片
C++初阶--String类的使用_第25张图片
C++初阶--String类的使用_第26张图片

back()和front()

C++初阶--String类的使用_第27张图片

reserve

C++初阶--String类的使用_第28张图片

C++初阶--String类的使用_第29张图片
C++初阶--String类的使用_第30张图片

在Linux的g++中
C++初阶--String类的使用_第31张图片

C++初阶--String类的使用_第32张图片
C++初阶--String类的使用_第33张图片

g++中:
C++初阶--String类的使用_第34张图片

C++初阶--String类的使用_第35张图片
C++初阶--String类的使用_第36张图片
在这里插入图片描述

g++中
C++初阶--String类的使用_第37张图片

结论
C++初阶--String类的使用_第38张图片

risize()

C++初阶--String类的使用_第39张图片

C++初阶--String类的使用_第40张图片

C++初阶--String类的使用_第41张图片

C++初阶--String类的使用_第42张图片

C++初阶--String类的使用_第43张图片

在这里插入图片描述
C++初阶--String类的使用_第44张图片

插入

C++初阶--String类的使用_第45张图片

push_back()

在这里插入图片描述

append()

C++初阶--String类的使用_第46张图片
C++初阶--String类的使用_第47张图片
C++初阶--String类的使用_第48张图片
C++初阶--String类的使用_第49张图片

操作数+=

C++初阶--String类的使用_第50张图片
追加字符时与push_back()一样;追加字符串时,和append()效果一样。

insert

C++初阶--String类的使用_第51张图片
C++初阶--String类的使用_第52张图片
C++初阶--String类的使用_第53张图片
C++初阶--String类的使用_第54张图片

erase

C++初阶--String类的使用_第55张图片

删除指定字符串。

在这里插入图片描述

find()

C++初阶--String类的使用_第56张图片

C++初阶--String类的使用_第57张图片
C++初阶--String类的使用_第58张图片
C++初阶--String类的使用_第59张图片

C++初阶--String类的使用_第60张图片

rfind

在这里插入图片描述

C++初阶--String类的使用_第61张图片

C++初阶--String类的使用_第62张图片

c_str

C++初阶--String类的使用_第63张图片

C++初阶--String类的使用_第64张图片
C++初阶--String类的使用_第65张图片

find_first_of

C++初阶--String类的使用_第66张图片
C++初阶--String类的使用_第67张图片

find_last_of

C++初阶--String类的使用_第68张图片
C++初阶--String类的使用_第69张图片

operator+

C++初阶--String类的使用_第70张图片
C++初阶--String类的使用_第71张图片

在这里插入图片描述

getline

C++初阶--String类的使用_第72张图片
C++初阶--String类的使用_第73张图片
C++初阶--String类的使用_第74张图片

你可能感兴趣的:(C++初阶,c++,java,数据库)