String类常见用法总结(C++)
一、构造函数
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类,定义变量,输入流,再输出 多次转换必须清空流!
stringstream ss;
int k;
string s;
cin>>s;
ss<<s;
ss>>k;
ss.clear();
实现从字符串到int的转换,反过来也可以 多个字符串拼接
sstream << "a" << "1" << "b";
sstream << "2c";
cout << sstream.str() << endl;
实现拼接
|