本文最后更新于: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;
|
实现拼接