函数原型

构造函数

  • 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; //通过[]方式取字符
  • char& at(int n); //通过at方法获取字符

    字符串插入和删除

  • 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比较 /

/*

  • 字符串截取
  • 截取函数原型
  • char& operator; //通过[]方式取字符
  • char& at(int n); //通过at方法获取字符 /

/*

  • 字符串插入
  • 插入函数原型
  • 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; }

  1. <a name="WO294"></a>
  2. #### 输出结果
  3. ```bash
  4. Hello
  5. Hello
  6. **********
  7. Hello String
  8. String
  9. ccccc
  10. HelloWorld
  11. World
  12. ld
  13. elloW
  14. 8
  15. can you can a can like a canner can a can?
  16. Hello and Hello is 0
  17. Hello and hello is -1
  18. e
  19. H
  20. Hello World
  21. can