前言

在最初的 C 语言中,头文件 string.h 提供了一系列字符串函数。早期的 C++ 也为处理字符串提供了类。string 类由头文件 支持,该类包含了大量方法及若干构造函数,用于将字符串赋给变量、合并字符串、比较字符串和访问各个元素的重载操作符、查找字符和子字符串的方法等。到目前为止,string 已被用户广泛接受及使用。

C++ 从 C 继承的字符串概念仍然是以 ‘\0’ 为结束符的 char 数组。C++ 标准库中的 string class 可以将 string 作为一个型别,可以实现复制、赋值和比较,不必担心内存大小及占用内存实际长度等具体问题。

现今,数据处理大部分是字符串处理,相较于早期的 C 语言和 Fortran 语言,这是非常重要的进步。在这些语言中,字符串的处理是非常复杂的。

本章将详细讲述字符串类库简述、字符的特点、字符串类模板(basic_String),字符串通用函数、字符串联接、字符串 IO 操作、搜索和查找、字符串对迭代器的支持以及字符串对配置器的支持等内容。

第一章、C++ string类库简介

https://blog.csdn.net/y601500359/article/details/105391110

字符串的表现形式多种多样,如 TCHAR,std::string、BSTR 等。字符串类均起源于 C 语言的字符串,而最初 C 语言的字符串是字符的数组。单字节字符串顺序存放各个字符串,并用’\0’表示字符串的结束。在 C 语言中,已存在部分字符串处理函数,例如 strcpy(),sprintf() , stoi() 等,只能用于单字节字符串。在标准库中,还有仅用于 Unicode 字符串的函数,如 wcscpy(),swprintf() , _wtol() 等。

多数人都惯于使用指针 ++ 和 – 操作符来遍历字符串。使用数组处理字符串中的字符也非常方便。无论 ASCII 码字符串还是 Unicode 字符串,使用指针均能够正确无误地返回要寻求的字符位置。

STL 中只有一个字符串类,即 basic_string。类 basic_string 实现管理以 \0 结尾的字符数组,字符类型由模板参数决定。

通常,basic_string 被处理为不透明的对象,靠获得只读指针来访问缓冲区,写操作是由 basic_string 的成员函数实现的。STL 的 C++ 标准程序库中的 string 类,使用时不必担心内存是否充足、字符串长度等问题。

string 作为类出现,其集成的操作函数足以完成多数情况下的需要。可以使用 “=” 进行赋值,使用 “==” 进行等值比较,使用 “+” 做串联。

要使用 string 类,必须包含头文件 <string>。在 STL 库中,basic_string 有两个预定义类型:包含 char 的 string 类型和包含 wchar 的 wstring 类型。

string 类的 string::npos 可同时定义字符串的最大长度,通常设置为无符号 int 的最大值。string 类包含了 6 个构造函数。string 类支持 cin 方式和 getline() 方式两种输入方式。简单示例如下:

/*************************************************
// Copyright (C), 2020-221, Sunking&Yang. Co., Ltd.
// 作者: SunkingYang
// 版本: 1.0
// 日期: 2020/04/08
//博客地址:https://blog.csdn.net/y601500359
// 说明:原创不易,转载请注明来源!
*************************************************/
string strTest;
cin >> strTest;
getline(cin, strTest);

上述三行代码,第一行是声明 string 类的对象 stuff,第二行是从屏幕读入输入的字符串,第三行同样实现第二行代码的功能。

string 库提供了许多其他功能,如删除字符串的部分或全部,用一个字符的部分或全部替换另一个字符串的部分或全部,插入、删除字符串中数据,比较、提取、复制、交换等。
参考来源:http://c.biancheng.net/view/1437.html

STL之字符串类模板 string(一)、C++ string类库简介相关推荐

  1. STL之template类模板

    1 #include <iostream> 2 using namespace std; 3 4 template<class T>//类模板 5 class Person{ ...

  2. 类模板(参考《C++ Templates 英文版第二版》)

    类模板(参考<C++ Templates 英文版第二版>) Chapter 1 类模板 与函数相似,类也可以被一个或者多个类型参数化 在这章,我们使用栈作为例子 2.1 类模板stack的 ...

  3. C++笔记7:C++提高编程1:模板—[函数模板和类模板]

    0820 C++提高编程: 1.模板-[函数模板和类模板] 2.初识STL 3.STL-常用容器 4.STL-函数对象 5.STL-常用算法 C++提高编程引言: C++除了面向对象编程思想,还有泛型 ...

  4. Java 11:字符串类中的新方法

    Java 11 doesn't have a lot of language specific features. So, it was surprising to see 6 new methods ...

  5. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  6. 笔记②:牛客校招冲刺集训营---C++工程师(面向对象(友元、运算符重载、继承、多态) -- 内存管理 -- 名称空间、模板(类模板/函数模板) -- STL)

    0618 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-14 友元 友 ...

  7. C++ string类模板

    18 C++ string类模板 18.1 string类的构造函数 1.string(const char * s) ---使用'\0'结尾的字符串初始化string对象 2.string(size ...

  8. STL(模板库)(string)(vector向量)(2019.3.19晚课习题)

    STL,标准模板库,从根本上说是一些''容器''的集合,这些容器有list,vector,set,map等.STL也是一些算法和其他一些组建的集合,STL现在也是c++的一部分,因此不用安装额外的库文 ...

  9. 初级C++STL:初阶模板 | String的使用

    文章目录 初级模板简介 函数模板 模板参数的匹配原则 类模板 STL标准模板库 string string类对象的访问及遍历操作 string类对象的容量操作 string类对象的修改操作 +=.in ...

  10. 【C++】STL常用容器总结之十二:string类

    13.string类 声明 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍. 之所以抛弃char*的字符串而选用C++标准程序库中的s ...

最新文章

  1. 科学家都解决不了的5个“简单”算法,你不来看看?
  2. Django 实现分库
  3. linux下find(文件查找)命令的用法总结
  4. 【数理知识】第8章-图-《离散数学及其应用》Kenneth H. Rosen
  5. Oracle-index索引解读
  6. mysql列目录_mysql列直接存储图片路径
  7. vivado点击xsetup.exe没有反应 最终版
  8. Delphi的Socket编程要分几步?
  9. 【覆盖安装】通用测试点
  10. 隐藏画质代码_优秀的模糊测试代码是如何炼成的?
  11. 移动端开发——京东首页制作(流式布局)
  12. Myeclipse破解后报错解决
  13. 微信小游戏代码包侵权的避开技巧(含处理脚本代码)
  14. c语言中清屏的作用是什么,c语言中的清屏函数clrscr()应该怎么用?
  15. 【边喝caffee边Caffe 】(一)Caffe的安装
  16. Programiz 中文系列教程·翻译完成
  17. Centos 远程桌面管理工具
  18. html超链接下划线改虚线_CSS和html中超链接去掉下划线的方法总结
  19. Edge无法上网的解决方法
  20. SolidWorks Premium 白金版

热门文章

  1. 《道德经》和《圣经》中的“道”
  2. Java 标准 IO 流编程一览笔录( 下 )
  3. dzz云桌面1.2部分主要功能图文介绍
  4. java秒杀源码_Java秒杀系统实战系列~商品秒杀代码实战
  5. 2015 沈阳 Frogs
  6. 【转】鼠标右键多余菜单清理
  7. 利用TLF给文本加样式
  8. onethink搭建
  9. 2022年西式面点师(初级)考试题库及模拟考试
  10. rockchip 瑞芯微 SDK 一些解释