当前位置: 首页 > news >正文

C++ string类

在这里插入图片描述

在这里插入图片描述

C++ string类讲解

1、为什么学习string类?

C语言中的字符串

在C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想(即Object Oriented Programming),而且底层空间需要用户自己管理,稍不留神可能还会越界访问。

在这里插入图片描述

针对类似这样的问题,作为C语言的升级版,C++肯定要拿捏掉相关的缺点,将其优化升级嘛,所以大佬们在研发C++的时候早就已经考虑到并且拿捏住了这些问题——string类就是这么来的。

在这里插入图片描述

因此,我们学习C++中string类的重要性也就不言而喻了。

在这里插入图片描述

2、标准库中的string类

在这里插入图片描述

(1)string类简介:

在这里插入图片描述

① 字符串是表示字符序列的类。

② 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。

③ string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型,关于默认的更多信息,请参阅basic_string)。

④ string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits和allocator作为basic_string的默认参数(关于更多的模板信息还是请参考basic_string)。

⑤ 注意,这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。

小结一下:

① string是表示字符串的字符串类。

② 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。

③ string在底层实际是:basic_string模板类的别名,typedef basic_string<char, char_traits, allocator>string。

④ 不能操作多字节或者变长字符的序列。

切记:在使用string类时,必须包含#include头文件以及using namespace std!

在这里插入图片描述

(2)string类的常用接口说明(注意下面我只讲解最常用的接口)

① string类对象的常见构造

在这里插入图片描述

相关文章:

  • 细数那些惊艳一时的 CSS 属性
  • 【C语言】你真的了解结构体吗
  • 可做题2(矩阵快速幂,乘法逆元,exgcd)
  • Mysql用户权限分配详解
  • 一文7个步骤从0到1教你搭建Selenium 自动化测试环境
  • 【网络安全工程师】从零基础到进阶,看这一篇就够了
  • 【C陷阱与缺陷】----语法陷阱
  • 解忧杂货铺(五续集):用了无法离开的网站资源
  • 功能测试转型测试开发年薪27W,又一名功能测试摆脱点点点,进了大厂
  • iOS 紧急通知
  • 艹,终于在8226上把灯点亮了
  • Linux上用Samba建立共享文件夹并通过Linux测试
  • shell简单使用介绍
  • 关于中级开发工程师常问的面试题
  • 蓝桥杯刷题第二十天
  • 【EOS】Cleos基础
  • CEF与代理
  • vue-router 实现分析
  • vuex 学习笔记 01
  • 欢迎参加第二届中国游戏开发者大会
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 第二十章:异步和文件I/O.(二十三)
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​插件化DPI在商用WIFI中的价值
  • # 飞书APP集成平台-数字化落地
  • (C++20) consteval立即函数
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (SpringBoot)第二章:Spring创建和使用
  • (二)c52学习之旅-简单了解单片机
  • (一)kafka实战——kafka源码编译启动
  • (转)shell调试方法
  • (转)母版页和相对路径
  • (状压dp)uva 10817 Headmaster's Headache
  • ***详解账号泄露:全球约1亿用户已泄露
  • .cn根服务器被攻击之后
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET实现之(自动更新)
  • .net项目IIS、VS 附加进程调试
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • .sh 的运行
  • :中兴通讯为何成功
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [100天算法】-x 的平方根(day 61)
  • [BJDCTF2020]The mystery of ip
  • [CSS]文字旁边的竖线以及布局知识
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
  • [IE技巧] 让IE 以全屏模式启动
  • [java刷算法]牛客—剑指offer链表有环的入口、反转链表、合并排序链表
  • [LeetCode] 596:超过5名学生的课
  • [LeetCode] NO. 387 First Unique Character in a String