C++笔记——string容器介绍

目录

一,string构造函数

二,赋值操作

三,字符串拼接

四,字符串查找与替换

五,字符串比较

六,字符存取

七,字符串插入和删除

八,字串获取

使用操作——从邮箱地址中获取用户名信息


前提:

使用string容器要包含头文件

#include<string>

本质:

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

string和char*的区别:

  •  char*是一个指针。
  •  string是一个类,类内封装了char*,管理这个字符串,是一个char*型的容器。

一,string构造函数

  1. string s1;  //创建空字符串

         const char* str = "hello world";

         string s2(str);    //初始化

      2.string s3(s2);    //使用一个string对象初始化另一个string对象

      3.string s4(5, 'a');     //使用n个字符a初始化

                            //string(int n,char c);

二,赋值操作

  1. string s1; 

         s1 = "hello world";  //char*型字符串,赋值给当前字符串

      2. string s2 = s1;  //字符串s1,赋值给s2

      3. string s3;

          s3 = 'a';  //字符赋值给当前字符串

       4. string s4;

           s4.assign("hello world");  //字符串s赋值给当前字符串

       5. string s5;

           s5.assign("hello world", 5);  //把字符串s的前n个字符赋值给当前字符串

       6. string s6;

           s6.assign(s5)  ;//把字符串s赋值给当前字符串

       7. string s7;

           s7.assign(10, 'a');  //把n个字符c赋值给当前字符串

三,字符串拼接

  1.    string s1="独取";

         s1 += "一瓢C++";

     2.    s1 += ';';  //追加一个字符

     3.    string s2="lol我是";

            s2 += s1;

     4.    string s3="i";

s3.append(" love ");

     5.    s3.append("gamesferg", 5);  //把字符串s的前n个字符拼接到当前字符串

     6.    s3.append(s2);

     7.    s3.append(s2,0,3);   //从第0个位置,截取三个字符

四,字符串查找与替换

1,查找

     string s1 = "abcdefg";

     int p1=s1.find("de");

     /* 查找字符串在当前字符串的位置,默认是从第0个位置开始查找,

     find函数返回值是整形数据,若未找到,则返回-1 */

      int p2 = s1.rfind("de");

     /* find 和 rfind 都可实现查找功能,但区别是:

     find是从左往右查找,rfind是从右往左 */

2,替换

      s1.replace(1, 3, "11111");

     /* replace函数有三个参数,从第1个位置开始,

     3个字符替换为“11111”*/

五,字符串比较

      string s1 = "hello";

      string s2 = "hello";

      int n = s1.compare(s2);

 比较方式:

  • 字符串比较是按照字符的ASCII码,逐个进行比较,直到比出大小结束

两个字符串相等                            返回  0

第一个字符串大于第二个字符串    返回  1

第一个字符串小于第二个字符串    返回  -1

六,字符存取

1,通过 [] 访问单个字符

       string s1 = "hello";

      for (int i = 0; i < s1.size(); i++) {

             cout << s1[i] << " ";

      }

      修改字符

      s1[0] = 'x';

2,通过at方式访问单个字符

      for (int i = 0; i < s1.size(); i++) {

            cout << s1.at(i) << " ";

      }

      修改字符

      s1.at(0) = 'x';

七,字符串插入和删除

1,,字符串插入

       string s1 = "hello";

       s1.insert(1, "111");  //从第一个位置插入字符串

2,字符串删除

       s1.erase(1, 3);   //从第一个位置删除3个字符

八,字串获取

功能描述:

  • 从字符串中获取想要的子串

      string s1 = "hello";

      string s2 = s1.substr(1, 3);

      cout << s2;

使用操作——从邮箱地址中获取用户名信息

      string email = "zhangsan@qq.com";

      int pos = email.find("@");            //查找字符“@”的位置

      string userName = email.substr(0, pos);     //从第0个位置开始,获取pos个字符

      cout << userName << endl;

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingCaius

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值