C++进阶STL-String容器

string初始化

  • string s1;//无参构造
  • string s2(10, ‘a’); //10个a
  • string s3(“julian”); //c style
  • string s4(s3);//拷贝构造

string的赋值

  • s1=”julian”;
  • s1= ’j’ ;
  • s1=s2; //等号操作符重载
  • s1.assign(“julian”);//使用成员方法
  • string &assign(const char *s,int n);// s开始的n个字符赋值
  • string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串

string的取值

  • s1[100] : 如果越界,直接挂掉,不会抛出异常
  • s1. at(100) :如果越界,抛出out of rang 的异常

string的拼接操作

  • 重载+=操作符
    string& operator+=(const string& str)
    string& operator+=(const char* s)
    string& operator+=(const char c)

  • 重载append方法
    string& append (const char* s) //把s连接到当前字符串的尾部
    string& append (const char* s,int n) //把s的前n个字符连接到当前字符串的尾部
    string& append (const string& str) //同+=
    string& append (const string& str, int pos, int n) //把str从pos开始的n个字符连接到当前字符串的尾部
    string& append (int n, char c); //在字符串后添加 n个c

string的查找替换

  • 查找
    find(字符c/字符串s,起始位置,字符串s前n个字符) 从前往后找
    rfind() 从后往前找

  • 替换
    string& replace(int pos, int n, const string& str);//从pos开始的n个字符替换成str
    string& replace(int pos, int n, const char* str);

string的比较

  • compare(字符串s) //按照ascii码逐个比较 。>返回1,<返回-1,==返回0

string的截取

  • string substr(int pos, int n) const //返回从pos开始的n个字符组成的字符串

string的插入和删除

  • 插入
    Insert(int pos, 字符串) //
    Insert(int pos, int n, char c) // 从pos开始 插入n个c

  • 删除
    erase(int pos,int n) //删除从pos开始的n个字符

string的交换

  • void swap(string &s2); //交换当前字符串与s2的值

string的转换

  • char* -> string 以 char* 参数 做string构造函数的参数
  • String -> char*
    string.c_str()方法
             string str1=”julain”;
             const char* str2= str1.c_str();

猜你喜欢

转载自blog.csdn.net/zzyczzyc/article/details/82933189