C++ string 常用知识总结

C++ string 常用知识总结

/*
C++ string 常见知识点总结
*/
#include <iostream>
#include <string>
using namespace std;
int main()
{
	//一、初始化
	//    1.字符串初始化
	string str_1("Hello World "); // string str_1 = "Hello World ";
	//    2.初始化为包含n个元素的string对象,每个字符都为c
	string str_2(5, 'y');
	//    3.复制构造函数
	string str_3(str_1);
	//二、获取字符串长度
	//    1.size
	int str_size = str_1.size();
	//    2.length
	int str_length = str_1.length();
	//三、字符串的拼接
	//    1.重载 + 或者 += 运算符,可在string对象后追加字符、string对象、C风格字符串
	str_3 = str_1 + str_2;
	str_3 += str_1;
	str_3 = str_3 + "hhh";
	str_3 = str_3 + 'c';
	//    2.append 参数为C风格字符串或者string对象
	str_3.append("hhh"); 
	str_3.append(str_2);
	//    3.push_back 参数为单个字符
	str_3.push_back('c');
	//四、字符串的比较
	//    1. 重载 == 和 != 运算符 str_1 == str_2  str_1 != str_2
	//    2. compare
	//		 相等返回0,小于返回负数,大于返回正数
	int res_1 = str_1.compare(str_2);
	int res_2 = str_1.compare(1, 2, str_2);// str_1中下标为1开始的2个字符与 str_2 比较
	int res_3 = str_1.compare(1, 2, str_2, 3, 4);// str_1中下标为1开始的2个字符与 str_2 中下标为3开始的4个字符比较
	//五、获取子串 substr(start_pos, length) length不指定即截取到字符串最后
	string str_4 = str_1.substr(1, 3);
	//六、访问字符串元素
	//    1. 下标访问
	char c_1 = str_3[0];
	//    2. at
	char c_2 = str_3.at(0);
	//七、查找
	//    1.find & rfind
	//		从字符串的 pos 位置(find 往前,rfind 往后)开始(若不指定 pos 的值,则默认从索引 0 处开始),查找子字符串 str。
	//		如果找到,则返回该子字符串首次出现时其首字符的索引;否则,返回 string::npos:
	//		string 类将 npos 定义为保证大于任何有效下标的值。
	int pos = str_1.find("Hello");
	//    2.返回子串出现在母串中的首次出现的位置,和最后一次出现的位置 find_first_of() & find_last_of()
	int pos_1 = str_1.find_first_of("He");
	//    3.返回子串中任意字符在母串中的首次 未 出现的位置,和最后一次的位置 find_first_not_of() & find_last_not_of()
	int pos_2 = str_1.find_first_not_of("Hel");// 返回 4 
	//八、元素删除 erase(pos, n) 删除从pos开始的n个字符
	str_1.erase(1, 2);
	//九、获取字符串第一个和最后一个字符 front & back
	char front = str_1.front();
	char back = str_1.back();

	return 0;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值