String类常见用法总结(C++)

本文最后更新于:3 年前

一、构造函数

string a; 默认构造
string a(b); 拷贝构造
string a(“abc”); 初始化为字符串“abc”
string a(n,’c’); 用n个‘c’初始化
string a(cs,3); 用字符数组cs的前3个初始化(char cs[])

注:以下均为成员函数

二、赋值

重载等号运算符= 可以用const char*类型,string类型,char类型当右值进行赋值
assign(elem) elem可以为const char*类型,string类型
assign(n,c) 用n个c字符赋值
assign(const char* s ,int n) 将s字符串前n个进行赋值

三、访问

operator[] 重载运算符
at(int id) 通过id访问字符

四、字符串拼接

重载+=运算符 可以接const char*类型,string类型,char类型
append(elem) elem可以为const char*类型,string类型
append(const char*s,int n) 把s中的前n个字符拼接到字符串的末尾
append(const string &s,int pos,int n) 字符串从s开始的n个字符拼接到末尾

五、字符串插入

insert(pos,s) 在pos位置插入字符串s
insert(pos,str,a,n) 在pos位置插入str中从a处位置开始的n个字符
insert(pos,str,n) 在pos位置插入str字符的前n个
insert(pos,n,ch) 在pos位置插入n个ch

六、字符串删除

erase(int a,int b) 删除从a开始的 b个字符
erase(pos1,pos2) 删除从迭代器pos1到pos2的字符
erase(pos) 删除迭代器pos指向的字符

七、字符串子串

substr(pos,n) 返回从pos开始的n个字符组成的字符串
substr(pos) 返回从pos开始到结尾组成的字符串

八、字符串查找、替换

未找到返回-1

find(const string &s,int pos=0) 从pos位置查找字符串s第一次出现的位置
find(const char*s,int pos=0) 从pos位置查找字符串s第一次出现的位置
find(const char*s,int pos,int n) 从pos位置查找字符串s前n个字符第一次出现的位置
find(const char c,int pos=0) 从pos查找字符c第一次出现的位置
rfind(const string &s,int pos=npos) 从pos查找字符串s最后一次出现的位置
rfind(const char*s,int pos=npos) 从pos查找字符串s最后一次出现的位置
rfind(const char*s,int pos,int n) 从pos查找字符串s前n个字符最后一次出现的位置
rfind(const char c,int pos=0) 从pos查找字符c最后一次出现的位置
replace(int pos,int n,const string& s) 替换从pos开始的n个字符串为s
replace(int pos,int n,const char* s) 替换从pos开始的n个字符串为s

九、字符串比较

compare(s) 和s进行比较相等返回0,大于返回1,小于返回-1
重载运算符 <,>,==

十、转换

to_string(val) 把val转换为字符串
stoi(s,p,b) 把字符串从p开始变为b进制的int
stol(s,p,b) 变long
stoul(s,p,b) 变unsigned long
stoll(s,p,b) 变long long
stoull(s,p,b) 变unsigned long long
stof(s,p) 变float
stod(s,p) 变double
stold(s,p) 变long double
  • 用stringstream,头文件sstream
    用stringstream类,定义变量,输入流,再输出
    多次转换必须清空流!
1
2
3
4
5
6
7
stringstream ss;
int k;
string s;
cin>>s;
ss<<s; //输入流
ss>>k; //输出,完成转换
ss.clear(); //清空

实现从字符串到int的转换,反过来也可以
多个字符串拼接

1
2
3
sstream << "a" << "1" << "b";
sstream << "2c";
cout << sstream.str() << endl;

实现拼接


String类常见用法总结(C++)
https://357meng.github.io/2022/01/27/Cplusplus00/
作者
Mengki
发布于
2022年1月27日
更新于
2022年10月13日
许可协议