STL-string容器

本质:string是C++风格的字符串,而string本质是一个类

string和char区别:
1.char
是一个指针
2.string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。

特点:
string类内部封装了很多成员方法,例如:查找find,拷贝copy,删除delete, 替换replace, 插入insert
string管理char*所分配的内存,不用担心复制越界,和取值越界等,由类内部进行负责。

1.string构造函数
构造函数原型:
string(); // 创建一个空的字符串,例如:string str;
string(const char* s); //使用字符串s初始化
string(const string& str) // 使用一个string对象初始化另一个string对象
string(int n, char c) //使用n个字符c初始化

//string构造函数
void test01() {

	string s1; //默认构造

	const char* str = "hello world";

	string s2(str);

	cout << "s2=" << s2 << endl;

	string s3(s2);

	cout << "s3=" << endl;

	string s4(10, 'a');
}

2.给string字符串进行赋值

//赋值操作
void test02() {

	//1.
	string str1;
	str1 = "aaa";

	//2
	string str2;
	str2 = str1;

	//3.
	string str3;
	str3 = 'q';

	//4.
	string str4;
	str4.assign("aaaa");

	//5.
	string str5;
	str5.assign("aaaaaaaa", 5);//把前5个输出

	//6.
	string str6;
	str6.assign(str5);

	string str7;
	str7.assign(10, 'a');


}

3.string字符串拼接

重载+=操作符

append函数

//string字符串拼接

void test03() {

//1.  +=操作符
	string str1="我";
	str1 += "爱玩游戏";

	//2.

	str1 += ':';

	//3.
	string str2 = "LOL";
	str1 += str2;

	//append方式

	string str3 = "I";
	str3.append("love");
	str3.append("game", 3);
	str3.append(str2);
	str3.append(str2, 4, 3);//截取str2中的从第4个位置开始,截取三个,

}

4.查找和替换
查找: find :查找第一次出现位置 rfind:查找最后一次位置 返回值为int类型
//rfind从右往左查找,find从左往右查找
替换:replace

//查找和替换
void test04() {

	string str1 = "abcdefg";
	int pos = str1.find("de");//位置从零开始
	if (pos = -1) {
		cout << "未找到字符串" << endl;
	}
	else
	{
		cout << "扎到字符串" << pos << endl;
	}
	//rfind从右往左查找,find从左往右查找
	str1.rfind("de");


	//替换

	str1.replace(1, 3, "1111");//从位置1开始到位置3替换为1111
	
}

5.字符串比较

按照字符的ASCII码进行对比
=返回0

返回1
<返回-1

函数:compare

//字符串比较

void test05() {

	string str1 = "hello";
	string str2 = "hello";
	if (str1.compare(str2)==0) {

		cout << "str1等于str2" << endl;
	}
	else  if (str1.compare(str2) > 0) {
		cout << "str1大于str2" << endl;
	}
	else {
		cout << "str1小于str2" << endl;
	}
}

6.字符存取
1.通过[]方式取字符
2.通过at方式

//字符串存取

void test06() {

	string str1 = "hello";
	//1.[]
	for (int i = 0; i < str1.size(); i++) {

		cout << str1[i]<< endl;
	}
//2.at方式
	for (int i = 0; i < str1.size(); i++) {

		cout << str1.at(i) << endl;
	}

	//修改单个字符
	str1[0] = 'x';//1
	str1.at(1) = 'x';//2



}

7.插入和删除

insert插入字符串

erase删除字符串

//插入和删除、

void test07() {

	string str = "hello";
	//插入
	str.insert(1, "111");//在1位置插3个1

	//删除

	str.erase(1, 3);//从第一个位置删除3个


}

8.从字符串中获取想要的子串
函数:substr

//求子串
void test08() {

	string str = "abcdef";
	string substr = str.substr(1.3);//从第一个位置返回3个


}
python023基于Python旅游景点推荐系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
JSP基于SSM网上医院预约挂号系统毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值