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

前言

在最初的 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SunkingYang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值