C++中String容器的基本使用--在B站听黑马程序员c++课程的记录

本文详细介绍了C++中String容器的使用,包括构造函数、赋值、拼接、查找与替换等基本操作。讲解了如何创建、赋值字符串,以及如何进行字符串的比较、存取、插入、删除和子串截取。此外,还涵盖了查找和替换的方法,以及字符串的比较功能。通过对这些知识点的学习,能深入理解C++中String类的使用。
摘要由CSDN通过智能技术生成


在B站听黑马程序员c++课程的记录

一些知识点

  1. 本质:是一个类,封装了char*。
  2. 特点:管理char*字符串,同时内部有很多的成员方法,可以更方便的操作字符串。类的内部直接对char*分配的内存进行管理,使用时不必担心越界等等。

构造函数的使用

  1. 创建空字符串,调用无参构造函数string(); string s1;
  2. 使用字符串s初始化 string(const char* s);
	const char* str = "hello world";
	string s2(str); 
  1. string对象赋值给另一个string对象 即拷贝构造函数 string(const string& str) string s3(s2);
  2. 生成n个c string(int n, char c) string s4(10, 'a');

赋值

前四种用operator重载=运算符,后三种用成员函数assign()

  1. string& operator=(const char* s); str1 = "hello world";
  2. string& operator=(const string &s); str2 = str1;
  3. string& operator=(char c); str3 = 'a';
  4. string& assign(const char *s); str4.assign("hello c++");
  5. 前5个字符 str5=“hello” string& assign(const char *s, int n); str5.assign("hello c++",5);
  6. string& assign(const string &s); str6.assign(str5);
  7. string& assign(int n, char c) str7.assign(5, 'x'); str7 = “xxxxx”

拼接

前三种用operator重载+=运算符,后四种用成员函数append()

  • string& operator+=(const char* str); // 重载+=操作符 str1 += “lalall”
  • string& operator+=(const char c); //重载+=操作符 str1 += char1
  • string& operator+=(const string& str); //重载+=操作符 str1 += str2
  • string& append(const char *s); //把字符串s连接到当前字符串结尾 str3.append(" love ");
  • 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个字符连接到字符串结尾str3.append(str2, 4, 3);

查找和替换

返回值int是找到的第一个字符下标,从0开始算起。
如果找不到返回值为-1。

  • 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第一次出现位置
    rfind和find的区别
    find从左往右查找,rfind从右往左查找。
  • 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最后一次出现位置
    如果n>str的长度,替换的长度实际为str的长度。
  • 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码逐位进行对比,先遇到哪一位的ASCII码大就是哪一个字符串大.

= 返回   0
> 返回   1 
< 返回  -1
  • int compare(const string &s) const; //与string s比较 str1.compare(str2)
  • int compare(const char *s) const; //与char* s比较

字符存取 访问

通过[]方式和at方法

  • char& operator[](int n); //通过[]方式取字符
  • char& at(int n); //通过at方法获取字符
    使用: str[i]str.at(i)

插入和删除

  • 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
  • string& erase(int pos, int n = npos); //删除从Pos开始的n个字符

截取子串

  • string substr(int pos = 0, int n = npos) const; //返回由pos开始的n个字符组成的字符串
    str = “12345”
    string subStr = str.substr(1, 3);
    运行结束后subStr的结果为str的第一个位置开始的3位子串"234"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值