C++中SLT容器字符串的基本操作

记录下STL的笔记

1字符串的赋值操作

assign函数的重载与=的重载

//c++中字符串的赋值操作
	string str1 = "hello c++";
	string str2, str3;
	str2.assign("hello world");  // 
	cout <<"str1中的内容"<< str1 << endl;
	cout << "str2中的内容"<<str2 << endl;
	str2.assign(str1);  //将str1中的内容复制给str2
	cout << "更改后的str2中的内容为"<<str2 << endl;
	str3.assign(str1, 0, 5);// 将str1中0-5复制给str3  注意此处assign函数的重载 如果不指定第三个参数默认到最后一个位置
	cout << "str3中的内容为"<<str3 << endl;

C++中SLT容器字符串的基本操作

2字符串的拼接操作

append函数的重载和+的重载(和python中的函数有些类似)

//c++中字符串的拼接
	string str1 = "what";
	string str2 = "fuck";
	string str3 = str1 + str2;
	cout << "str3中的内容为" << str3 << endl;
	string str4 = str3.append("it");  
	//string str4 = str3.append("it", 0, 2);
	cout << "str4中的内容为" << str3 << endl;

C++中SLT容器字符串的基本操作

3字符串的查找和替换

find函数的重载 replac函数

//字符串的查找和替换操作
	string str1 = "come baby";
	int pos = str1.find("b");  //返回查找到的第一个字符的下表同时注意下标从0开始
	//find 从前往后查找 rfind从后往前查找  find_first_of和find函数类似 
	//find_first_not_of查找不符合字符的第一个坐标
	
	cout << "查找结果" << pos << endl;
	pos = str1.find("b", 6,2);  //find函数的重载定义查找范围
	cout << "从指定位置查找查找结果" << pos << endl;
	//string str2;
	str1.replace(4, 3," my ");  //注意替换时字符串的长度不变 且当字符长度大于范围时 以字符的长度替代
	cout << "str1替换的结果为" << str1 << endl;

C++中SLT容器字符串的基本操作

4访问字符串中的数据

at和数组方式

//访问字符串中的数据
	string str1 = "i love you";
	cout << "数组访问法" << str1[0] << endl;
	cout << "at方式访问" << str1.at(2) << endl;
	//字符串的翻转
	reverse(str1.begin(), str1.end());
	cout << "str1:" << str1 << endl;

C++中SLT容器字符串的基本操作

5字符串的插入与删除

insert函数的调用与erase函数clear函数

//字符串的插入与删除
	string str1 = "hello";
	str1.insert(5, " c++");
	string str2 = "hello C++";
	str2.erase(0, 5);  //删除下标0-5的字符
	cout << "str2" << str2 << endl;
	str2.clear();  //将字符串中的内容全部删除
	cout << "str2" << str2 << endl;

C++中SLT容器字符串的基本操作

上一篇:C#日期格式强制转换方法


下一篇:c++优先队列priority_queue(自定义比较函数)