C++STL总结——string:字符串


包含头文件:string

整合

//string:字符串
void string_test_01() {
	//构造
	string s1;	//默认构造

	const char* str = "hello world";
	//使用c风格字符串初始化
	string s2(str);

    //使用拷贝构造初始化
	string s3(s3);

    //string s4(n,m):使用n个m(单字符)初始化
	string s4(5, 'a');
}

void string_test_02() {
	//赋值
	string str1;
	//直接使用=对str1进行赋值
	str1 = "hello world";

	string str2;
	//使用str1对str2进行赋值
	str2 = str1;

	string str3;
	//使用单个字符对字符串进行赋值
	str3 = 'a';

	string str4;
	//使用assign成员函数对str4进行赋值
	str4.assign("hello");

	string str5;
	//string str.assign(const char* s, int n):将s中的前n个放到str
	str5.assign("hello", 3);

	string str6;
	//string str.assign(n,m):将n个m(单字符)放入str中
	str6.assign(5, 'a');

	string str7;
	//把str6赋值给str7,也可以在括号内写c风格字符
	str7.assign(str6);
}

void string_test_03() {
	//字符串拼接
	string str1 = "abc";
	//+=进行末尾拼接,可以追加单个字符
	str1 += "def";

	string str2 = "xyz";
	//可以追加已经初始化的字符串
	str2 += str1;
	cout << str2 << endl;

	string str3 = "i";
	//在str3末尾插入字符串
	str3.append(" love");

    //str.append(s, n):在str后面追加s(字符串)的前n个
	str3.append(" study abcdef", 6);

    //从str2的第2个位置(从0开始)截取3个放到str3的末尾
	str3.append(str2, 2, 3);
}

void string_test_04() {
	//查找和替换
	//查找
	string s1 = "abcdefde";

    //返回de的第一次出现的位置(从0开始)
	int pos1 = s1.find("de");

    //没有找到返回-1
	int pos2 = s1.find("df");

    //str.find(s, n):从第n个位置(从0开始)开始找s(字符串),
    //找到返回位置(原字符串的位置,与开始找的位置无关),未找到返回-1
	int pos3 = s1.find("de", 4);

	//rfind是从右往左寻找,返回的位置是原字符串的位置(从左往右数)
	int pos4 = s1.rfind("de");

	//替换
	string s2 = "abcdefg";
	//从1号位置(从0开始)起的后2个字符替换成"xyz",即把bc替换成xyz剩余不变
	s2.replace(1, 2, "xyz");
}

void string_test_05() {
	//比较
	//字符串按照ASCII码进行对比
	//两个字符串相等,返回0
	//第一个>第二个,返回1
	//第一个<第二个,返回-1
	string str1 = "abc";
	string str2 = "abc";

	int ans = str1.compare(str2);
}

void string_test_06() {
	//字符串的存取
	string str1 = "abcdefgh";
	cout << str1[2] << endl;	//通过[]的方式
	cout << str1.at(3) << endl;	//通过at的方式
}

void string_test_07() {
	//插入删除
	string str = "abcdef";
	string s = "987";

	str.insert(0, "123");	//在原字符串的0号位置之前插入123
	str.insert(0, s);

	str.insert(3, 5, '0');	//在3号位置插入5个'0'

	str.erase(3, 5);	//从3号位置起删除5个
}

void string_test_08() {
	//子串获取
	string str = "abcdefghijkl";

	string s;
	s = str.substr(0, 3);	//从str中的0号位置截取3个字符
}

构造

void string_test_01() {
	//构造
	string s1;	//默认构造

	const char* str = "hello world";
	//使用c风格字符串初始化
	string s2(str);

    //使用拷贝构造初始化
	string s3(s3);

    //string s4(n,m):使用n个m(单字符)初始化
	string s4(5, 'a');
}

赋值

void string_test_02() {
	//赋值
	string str1;
	//直接使用=对str1进行赋值
	str1 = "hello world";

	string str2;
	//使用str1对str2进行赋值
	str2 = str1;

	string str3;
	//使用单个字符对字符串进行赋值
	str3 = 'a';

	string str4;
	//使用assign成员函数对str4进行赋值
	str4.assign("hello");

	string str5;
	//string str.assign(const char* s, int n):将s中的前n个放到str
	str5.assign("hello", 3);

	string str6;
	//string str.assign(n,m):将n个m(单字符)放入str中
	str6.assign(5, 'a');

	string str7;
	//把str6赋值给str7,也可以在括号内写c风格字符
	str7.assign(str6);
}

字符串拼接

void string_test_03() {
	//字符串拼接
	string str1 = "abc";
	//+=进行末尾拼接,可以追加单个字符
	str1 += "def";

	string str2 = "xyz";
	//可以追加已经初始化的字符串
	str2 += str1;
	cout << str2 << endl;

	string str3 = "i";
	//在str3末尾插入字符串
	str3.append(" love");

    //str.append(s, n):在str后面追加s(字符串)的前n个
	str3.append(" study abcdef", 6);

    //从str2的第2个位置(从0开始)截取3个放到str3的末尾
	str3.append(str2, 2, 3);
}

查找和替换

void string_test_04() {
	//查找和替换
	//查找
	string s1 = "abcdefde";

    //返回de的第一次出现的位置(从0开始)
	int pos1 = s1.find("de");

    //没有找到返回-1
	int pos2 = s1.find("df");

    //str.find(s, n):从第n个位置(从0开始)开始找s(字符串),
    //找到返回位置(原字符串的位置,与开始找的位置无关),未找到返回-1
	int pos3 = s1.find("de", 4);

	//rfind是从右往左寻找,返回的位置是原字符串的位置(从左往右数)
	int pos4 = s1.rfind("de");

	//替换
	string s2 = "abcdefg";
	//从1号位置(从0开始)起的后2个字符替换成"xyz",即把bc替换成xyz剩余不变
	s2.replace(1, 2, "xyz");
}

比较

void string_test_05() {
	//比较
	//字符串按照ASCII码进行对比
	//两个字符串相等,返回0
	//第一个>第二个,返回1
	//第一个<第二个,返回-1
	string str1 = "abc";
	string str2 = "abc";

	int ans = str1.compare(str2);
}

字符串的存取

void string_test_06() {
	//字符串的存取
	string str1 = "abcdefgh";
	cout << str1[2] << endl;	//通过[]的方式
	cout << str1.at(3) << endl;	//通过at的方式
}

插入和删除

void string_test_07() {
	//插入删除
	string str = "abcdef";
	string s = "987";

	str.insert(0, "123");	//在原字符串的0号位置之前插入123
	str.insert(0, s);

	str.insert(3, 5, '0');	//在3号位置插入5个'0'

	str.erase(3, 5);	//从3号位置起删除5个
}

子串的获取

void string_test_08() {
	//子串获取
	string str = "abcdefghijkl";

	string s;
	s = str.substr(0, 3);	//从str中的0号位置截取3个字符
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸人止

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值