看B站视频记的笔记
视频地址
string
1、string 构造函数
#include <string>
string str1("hello world");
string str2(5,'a'); //aaaaa
string str3 = str2; //aaaaa
string str4 = "sdfsdfs";
2、string基本赋值操作
#include <string>
string str = "hello";
str = 'W';
str = "sdfhkjhk";
str.assign("Hello world");
str.assign("Hello world",5); // 赋值前五个字符
str.assign(5,"H"); // HHHHH ,用五个字符H赋值
str.assign("Hello world",2,5); // 将从下标2开始的5个字符赋值
3、string存取操作
#include <string>
string str1 = "hello world";
cout<<str1[1]<<" "<<str1.at(1)<<endl; //e e
// 返回值为引用
str1[1] = 'E';
str1.at(6) = 'H';
cout<<str1<<endl; //hEllo Horld;
4、string拼接操作
#include <string>
string str1 = "hello";
str1 += "world"; //hello world
str1.append("hello",2,3); // 把字符串hello的下标2开始追加3个. hello worldllo
str1.append(2,'W'); //追加两个W hello worldlloWW
5、string的查找和替换
#include <string>
string str = "ABCDEFGHIJKLMN";
int ret = str.find("C"); // 2
int ret2 = str.find("C",3); // 从下标3的位置开始找,没找到返回-1
int ret3 = str.find("BCDE",0,2); //从下表0开始查找BCDE的前2个字符的第一次位置
string s = str.replace(0,4,"12345");//将下标0-4替换为12345 12345FGHIJKLMN
6、string比较操作
这里也重载了 > < = 运算符
#include <string>
string str1 = "hehe";
string str2 = "haha";
if(str1.compare(str2) < 0){
cout<<"小于"<<endl;
}
if(str1 < str2){
cout<<"小于"<<endl;
}
7、string 子串
#include <string>
string str1 = "hello world";
string s = str1.substr(2,3); // llo
8、string 插入和删除操作
#include <string>
string str1 = "hello";
str1.insert(2,"###"); // he###llo
str1.erase(2,3); //hello
str1.erase(0,str1.size()); // 清空