该篇博客持续更新,喜欢的话点赞收藏加关注吧~
1 初始化
// 头文件
#include <string>
// 1、直观的初始化
string str="hello"; // 'hello'
string str2("world"); // 'world'
// 2、批量初始化
// 第二个参数为char型(注意是''而不是""!!!)
string str(3,'h'); // 'hhh'
// 3、通过其他字符串初始化
// 假设字符串str为"coding"
string str2(str,1); // 'oding',从索引1开始截取到最后
string str3(str,1,3); // 'odi',从索引1开始截取3个字符
2 常用方法
2.1 增
2.1.1 push_back()
// 假设字符串 str 为 "aaa"
str.push_back('b'); // str 变为 "aaab"
2.1.2 insert()
// 假设字符串 str 为 "aaa"
// 在指定位置添加字符
str.insert(++str.begin(),'b'); // "abaa",先在索引1插入'b'
str.insert(str.begin(),'b'); // "babaa",接着在索引0插入'b'
2.2 删
2.2.1 clear()
// 假设str为"aaa"
str.clear(); // 将str清空
2.2.2 erase()
// 假设str为"coding"
str.erase(str.begin()+1,str.begin()+3); // 从索引1开始删除(3-1)个字符
// 删除'od',str变为"cing"
//--------------------------------
// 假设str2为"coding"
str2.erase(str.begin()+1); // 删除索引为1的字符(单个)
// 删除'o',str变为"cding"
2.3 改
2.3.1 append()
// 假设str为"aaa"
str.append("bbb"); // str变为"aaabbb"
2.3.2 tolower()和toupper()
string str="aba";
for(int i=0;i<str.size();i++) { // 循环结束str变为"ABA"
str[i]=toupper(str[i]);
}
for(int i=0;i<str.size();i++) { // 循环结束str变为"aba"
str[i]=tolower(str[i]);
}
2.4 查
2.4.1 size()和length()
// 假设 str 为 "coding"
str.size(); // 返回字符串长度 6
str.length(); // 与上相同 6
2.4.2 empty()
str.empty(); // str为空返回true,不为空返回false
2.4.3 find()
string s("hello everyone");
// 1. 查找字符串,返回该字符串第一个字符下标
s.find("every"); // 返回 6
// 2. 查找字符
s.find("e"); // 返回 1 (返回第一个索引)
s.find("e",2); // 返回6 (返回指定索引2后面的第一个索引)
// 3. 反向查找字符串,返回该字符串第一个字符下标
s.rfind("every"); // 返回 6
// 4. 查找字符
s.rfind("e"); // 返回 13 (返回反向第一个索引)
s.rfind("e",2); // 返回1 (返回指定索引2往左的第一个索引)
3 其他方法
3.1 截取字符串
string s1("abcdef");
string s2=s1.substr(2); // 从索引2开始截取,"cdef"
string s3=s1.substr(2,3); // 从索引2开始截取,长度为3,"cde"
3.2 整数型和字符串相互转化
// 1、字符串转化为整数
string str("123");
int num=stoi(str); // 整数num为 123
// 2、整数转化为字符串
int num2=234;
string str2=to_string(num2); // 字符串str2为 "234"
3.3 读入整行字符(包含空格)
string str;
getline(cin,str); // 可以从终端输入整行字符,可以包含空格