0


C++ | string类的使用

构造函数

  • string();------无参构造
  • string (const string& str);------拷贝构造
  • string (const char* s);------用字符串初始化
  • template <class InputIterator> string (InputIterator first, InputIterator last);------用迭代器初始化[第一个元素位置,最后一个元素的下一个位置)
  • string (size_t n, char c);------用n个相同的字符初始化

    // 无参构造,不能string s1()因为这样会误以为是函数声明或者函数调用
    string s1; 

    // 用字符串初始化
    string s2("你好abcdef"); // string s2="你好abcdef";

    // 拷贝构造
    string s3(s2); // string s3=s2;

    // n个相同的字符初始化
    string s4(9,'c');

    // 用一段区间初始化,区间必须是左闭右开
    char ch[] = "123456";
    string s5(ch, ch + 3);
  • string (const string& str, size_t pos, size_t len = npos);------从str的pos位置开始将长度为len字符串用于初始化
  • string (const char* s, size_t n);------将字符串的前n个字符用于初始化

    // 用字符串初始化
    string s1 = "abcdef";

    // 从pos位置开始将长度为len的字符串用于初始化
    string s2(s1, 2, 3);
    string s3(s1, 3); // 如果不传len,默认长度为npos。如果len超出了,到s1的结尾结束

    // 将字符串的前5个字符用于初始化
    string s4("qwertyuio", 5);

    cout << s1 << endl;
    cout << s2 << endl;
    cout << s3 << endl;
    cout << s4 << endl;

赋值重载

  • string& operator= (const string& str);------用string进行赋值
  • string& operator= (const char* s);------用字符串赋值
  • string& operator= (char c);------用某个字符赋值

    string s("wasd2468");

    string s1("abc");

    // 用string进行赋值
    s1 = s;
    cout << s1 << endl;

    // 用字符串赋值
    s1 = "xyz";
    cout << s1 << endl;

    // 用某个字符赋值
    s1 = 'a';
    cout << s1 << endl;

  • void push_back (char c);------尾插一个字符
  • string& append (const string& str);------尾插一个string类
  • string& append (const string& str, size_t subpos, size_t sublen);------尾插一个string类的子string,从subpos位置开始,长度sublen

  • string& append (const char* s);------尾插一个字符串
  • string& append (const char* s, size_t n);------尾插一个字符串的前n个字符
  • string& append (size_t n, char c);------尾插n个相同的字符
  • template <class InputIterator> string& append (InputIterator first, InputIterator last);------尾插一段区间

  • string& operator+= (const string& str);------尾插一个string类
  • string& operator+= (const char* s);------尾插一个字符串
  • string& operator+= (const char* s);------尾插一个字符

  • string& insert (size_t pos, const string& str);------在pos位置插入一个string类
  • string& insert (size_t pos, const string& str, size_t subpos, size_t sublen);------在pos位置插入一个string子类
  • string& insert (size_t pos, const char* s);------在pos位置插入一个字符串
  • string& insert (size_t pos, const char* s, size_t n);------在pos位置插入一个字符串的前n个字符
  • string& insert (size_t pos, size_t n, char c);------在pos位置插入n个相同的字符

  • void pop_back();------尾删一个字符
  • string& erase (size_t pos = 0, size_t len = npos);------从pos位置开始,删除len个字符
  • iterator erase (iterator p);------删除迭代器p位置上的字符
  • iterator erase (iterator first, iterator last);------删除一段区间

  • size_t find (const string& str, size_t pos = 0) const;------从pos位置开始,默认从0位置开始,寻找子string类,找到了返回对应第一个字符的下标,如果没有找到返回npos
  • size_t find (const char* s, size_t pos = 0) const;------从pos位置开始,寻找子串
  • size_t find (char c, size_t pos = 0) const;------从pos位置开始,寻找对应的字符
  • size_t rfind (const string& str, size_t pos = npos) const;------从pos位置开始,反向寻找子string类
  • size_t rfind (const char* s, size_t pos = npos) const;------从pos位置开始,反向寻找对应的子串
  • size_t rfind (char c, size_t pos = npos) const;------从pos位置开始,反向寻找字符

  • char& operator[] (size_t pos);------返回对应位置的字符引用
  • string& assign (const string& str);------为string指定一个新值,替换其当前内容
  • string& assign (const char* s);------将当前内容替换成新字符串
  • string& replace (size_t pos, size_t len, const string& str);------将pos位置开始,len个字符替换成新string类
  • string& replace (iterator i1, iterator i2, const string& str);------将对应的区间[i1,i2)替换成新string类
  • void swap (string& str);------和一个string类进行交换

存储

  • size_t size() const;------返回已存储的字符个数
  • size_t length() const;------返回字符串的长度
  • size_t capacity() const;------返回容量
  • void clear();------清空长度
  • bool empty() const;------判断string类是否为空
  • void resize (size_t n, char c = '\0');------改变size的大小,用c填充
  • void reserve (size_t n = 0);------改变capacity的大小
  • void shrink_to_fit();------让capacity与size适应
  • const char* c_str() const;------返回首地址

遍历

  • iterator begin();------首元素位置
  • iterator end();------最后一个元素的下一个位置
  • reverse_iterator rbegin();------最后一个元素的位置
  • reverse_iterator rend();------首元素的前一个位置

获取

  • size_t copy (char* s, size_t len, size_t pos = 0) const;------将string类中的一段字符串写入s中
  • string substr (size_t pos = 0, size_t len = npos) const;------在string类中,从pos位置开始,截取len个字符,然后将其返回
  • istream& getline (istream& is, string& str, char delim);------获取一行字符串

标签: c++ 开发语言 string

本文转载自: https://blog.csdn.net/m0_61433144/article/details/126320027
版权归原作者 零叁零叁零叁 所有, 如有侵权,请联系我们删除。

“C++ | string类的使用”的评论:

还没有评论