C++ string容器

string基本概念

 本质

  • string 是C++风格的字符串,而string本质上是一个类

 string 与 char* 区别

  • char* 是一个指针,指向一个内存空间
  • string 是一个类,类内部封装了char*,并提供了很多成员方法
  • string 对内存空间进行管理,不需要担心复制越界和取值越界等

string构造函数

 构造函数原型:

string();                   // 默认构造函数,创建一个空的字符串
string(const char *s);		// 创建一个字符串,并用字符串s初始化
string(const string &str);  // 拷贝构造函数,创建一个字符串,并使用字符串str进行初始化
string(int n, char c);      // 创建一个字符串,并使用n个字符c进行初始化

string赋值操作

 赋值的函数原型:

// 重载操作符=
string& operator=(const char *s);      // char*类型字符串赋值给当前字符串
string& operator=(const string &str);  // 把字符串str赋值给当前字符串
string& operator=(char c);             // 把字符c赋值给当前字符串
// assign赋值
string& assign(const char *s, int n);  // 把char*类型字符串的前n个赋值给当前字符串
string& assign(const string &str);     // 把字符串str赋值给当前字符串
string& assign(int n, char c);         // 把n个字符赋值给当前字符串

string字符串拼接

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

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

// append拼接
string& append(const char *s);
string& append(const char *s, int n);  // 把字符串s的前n个字符拼接到当前字符串结尾
string& append(const string &str);     // 把字符串str拼接到当前字符串结尾
string& append(const string &str, int pos, int n);  // 把字符串str从pos开始的n个字符拼接到当前字符串结尾

string查找和替换

功能描述:

  • 查找:查找指定字符串是否存在
  • 替换:替换指定位置的字符串
// 正向查找
int find(const string &str, int pos = 0) const;  // 从pos开始,查找字符串str第一次出现位置
int find(const char *s, int pos = 0) const;      // 从pos开始,查找字符串s第一次出现位置
int find(const char *s, int pos, int n) const;   // 从pos开始,查找字符串s的前n个字符第一次出现位置
int find(const char c, int pos = 0) const;       // 从pos开始,查找字符c第一次出现位置
// 反向查找 
int rfind(const string &str, int pos = npos) const; //查找字符串str最后一次出现位置,到npos为止
int rfind(const char *s, int pos = npos) const; //查找字符串s最后一次出现位置,到npos为止
int rfind(const char *s, int pos, int n) const; //查找字符串s的前n个字符最后一次出,到npos为止
int rfind(const char c, int pos = npos) const;  //查找字符c最后一次出现位置,到npos为止
// 替换
string& replace(int pos, int n, const string &str); //将从pos开始的n个字符替换为字符串str
string& replace(int pos, int n, const char *s);     //将从pos开始的n个字符替换为字符串s

注意:

string str1("123&123&123");	
int fpos= str1.rfind("123",4);  // 此处fpos= 4,
//指定的pos=4不等价于“123&1”查找“123”,而是在"123&123&123"用“123”去匹配,匹配到pos=4位置则不再继续匹配。

string字符串比较

函数原型:

//compare =返回0 > 返回1 <返回-1
int compare(const string &str) const;  
int compare(const char *s) const;

string字符存取

函数原型:

//重载操作符[]
char& operator[](int n);  //通过[]方式存取字符
//at函数
char& at(int n);   // 通过at方式存取字符

string插入和删除

函数原型:

//insert 函数
string& insert(int pos, const char *s);  //在指定位置pos之前插入字符串s
string& insert(int pos, const string &str);  //在指定位置pos之前插入字符串str
string& insert(int pos, int n, char c); //在指定位置pos之前插入n个字符c
//erase 函数
string& erase(int pos, int n = npos); //删除从Pos开始的n个字符(默认到结尾)

string子串

函数原型:

//substr函数,从字符串中获取子串
string substr(int pos = 0, int n = npos) const; //返回从pos开始的n个字符组成的字符串

STL常用容器

常用容器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值