函数原型
构造函数
- string(); //创建一个空的字符串 例如: string str;
- string(const char* s); //使用字符串s初始化
- string(const string& str); //使用一个string对象初始化另一个string对象
string(int n, char c); //使用n个字符c初始化
字符串赋值
string& operator=(const char s); //char类型字符串 赋值给当前的字符串
- string& operator=(const string &s); //把字符串s赋给当前的字符串
- string& operator=(char c); //字符赋值给当前的字符串
- string& assign(const char *s); //把字符串s赋给当前的字符串
- string& assign(const char *s, int n); //把字符串s的前n个字符赋给当前的字符串
- string& assign(const string &s); //把字符串s赋给当前字符串
string& assign(int n, char c); //用n个字符c赋给当前字符串
字符串拼接
string& operator+=(const char* str); //重载+=操作符
- string& operator+=(const char c); //重载+=操作符
- string& operator+=(const string& str); //重载+=操作符
- string& append(const char *s); //把字符串s连接到当前字符串结尾
- string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾
- string& append(const string &s); //同operator+=(const string& str)
string& append(const string &s, int pos, int n);//字符串s中从pos开始的n个字符连接到字符串结尾
字符串查找和替换
int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找
- int find(const char* s, int pos = 0) const; //查找s第一次出现位置,从pos开始查找
- int find(const char* s, int pos, int n) const; //从pos位置查找s的前n个字符第一次位置
- int find(const char c, int pos = 0) const; //查找字符c第一次出现位置
- int rfind(const string& str, int pos = npos) const; //查找str最后一次位置,从pos开始查找
- int rfind(const char* s, int pos = npos) const; //查找s最后一次出现位置,从pos开始查找
- int rfind(const char* s, int pos, int n) const; //从pos查找s的前n个字符最后一次位置
- int rfind(const char c, int pos = 0) const; //查找字符c最后一次出现位置
- string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str
string& replace(int pos, int n,const char* s); //替换从pos开始的n个字符为字符串s
字符串比较和存取
int compare(const string &s) const; //与字符串s比较
- int compare(const char *s) const; //与字符串s比较
- char& operator; //通过[]方式取字符
-
字符串插入和删除
string& insert(int pos, const char* s); //插入字符串
- string& insert(int pos, const string& str); //插入字符串
- string& insert(int pos, int n, char c); //在指定位置插入n个字符c
string& erase(int pos, int n = npos); //删除从Pos开始的n个字符
字符串子串
string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串
测试代码
```cpp
include
include
using namespace std;
/*
- 创建操作
- 初始化函数原型
- string() //创建一个空字符串
- string(const char* s) //C语言风格字符串
- string(const string& str) //拷贝复制
- string(int n, char c) //使用n个字符c进行初始化 */
/*
- 赋值操作
- 赋值函数原型
- string& operator=(const char s); //char类型赋值重载
- string& operator=(const string &s); //对象赋值
- string& operator=(char c); //字符赋值
- string& assign(const char *s)
- string& assign(const char *s, int n) //赋值前n个给对象
- string& assign(const string &s)
- string& assign(int n, char c)
- */
/*
- 拼接操作
- 拼接操作函数原型
- string& operator+=(const char str); //char
- string& operator+=(const char c); //char
- string& operator+=(const string& str); //对象
- string& append(const char s) //char
- string& append(const char *s, int n) //只追加前n个
- string& append(const string &s) //对象追加
- string& append(const string &s, int pos, int n) //[pos:n]追加
- */
/*
- 字符串查找
- 查找函数原型
- int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找
- int find(const char* s, int pos = 0) const; //查找s第一次出现位置,从pos开始查找
- int find(const char* s, int pos, int n) const; //从pos位置查找s的前n个字符第一次位置
- int find(const char c, int pos = 0) const; //查找字符c第一次出现位置
- int rfind(const string& str, int pos = npos) const; //查找str最后一次位置,从pos开始查找
- int rfind(const char* s, int pos = npos) const; //查找s最后一次出现位置,从pos开始查找
- int rfind(const char* s, int pos, int n) const; //从pos查找s的前n个字符最后一次位置
- int rfind(const char c, int pos = 0) const; //查找字符c最后一次出现位置
- string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str
- string& replace(int pos, int n,const char s); //替换从pos开始的n个字符为字符串s /
/*
- 字符串比对
- 比对函数原型
- 比对字符串按照ascii码进行比对,因此和排序无关,结果用来比较两个字符串是否相等
- int compare(const string &s) const; //与字符串s比较
- int compare(const char s) const; //与字符串s比较 /
/*
/*
- 字符串插入
- 插入函数原型
- string& insert(int pos, const char* s); //插入字符串
- string& insert(int pos, const string& str); //插入字符串
- string& insert(int pos, int n, char c); //在指定位置插入n个字符c
- string& erase(int pos, int n = npos); //删除从Pos开始的n个字符 */
/*
- 字符串子串
- 子串函数原型
- string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串
- 用来截取 关键信息 */
void stringinit() { string s1; const char str = “Hello”; string s2(str); string s3(s2); string s4(10, ‘‘); cout << s1 << endl; cout << s2 << endl; cout << s3 << endl; cout << s4 << endl; } void stringassign() { string str1 = “Hello String”; string str2; str2.assign(str1, 5); string str3; str3.assign(5, ‘c’); cout << str1 << endl; cout << str2 << endl; cout << str3 << endl; } void stringappend() { string str1 = “Hello”; string str2 = “World”; str1.append(str2); string str3; str3.append(str2, 3); string str4; str4.append(str1, 1, 5); cout << str1 << endl << str2 << endl << str3 << endl << str4 << endl; } void stringfind() { string str = “Can you can a can like a canner can a can?”; cout << str.find(“can”) << endl; cout << str.replace(0, 3, “can”) << endl; } void stringcompare() { string str1 = “Hello”; string str2 = “Hello”; string str3 = “hello”; cout << str1 << “ and “ << str2 << “ is “ << str1.compare(str2) << endl; cout << str2 << “ and “ << str3 << “ is “ << str2.compare(str3) << endl; } void stringcharat() { string str = “Hello”; cout << str.at(1) << endl; cout << str[0] << endl; } void stringinsert() { string stro = “Hello”; stro.insert(stro.length(), “World!!!”); stro.insert(5, 1, ‘ ‘); stro.erase(stro.length()-3, 3); cout << stro << endl; } void stringsubstr() { string str = “can you can a can like a canner can a can?”; cout << str.substr(0, 3) << endl; } int main() { stringinit(); stringassign(); stringappend(); stringfind(); stringcompare(); stringcharat(); stringinsert(); stringsubstr(); return 0; }
<a name="WO294"></a>
#### 输出结果
```bash
Hello
Hello
**********
Hello String
String
ccccc
HelloWorld
World
ld
elloW
8
can you can a can like a canner can a can?
Hello and Hello is 0
Hello and hello is -1
e
H
Hello World
can