C++ 标准库-字符串 string 类.pdf
文本预览下载声明
C++ 标准库-字符串 string 类
针对字符串处理,C++中并没有专门的内置类型。C语言是使用字符数组以 相应的指针来表
示字符串。前面章节已经介绍了C++包容的C语言字符串处理方式。下面将讲解C++标准库封装字
符串处理的字符串类类型。通过库提供的字符串类型公开方法接口,开发者可以很方便地定义操
作字符串,使得操作字符串变得方便简易。
1.1 string 字符串对象构造
C++库中提供的字符串标准类是通过模板定义来实现的。其中,模板类basic_string主要用于
表示两类字符串操作:一种是目前应用程序中常用的string类型;另一种是支持宽类型的字符操作
。目前本章所讲述的是string类型。名称空间std 中string其实只是basic_string模板类的别名。如果
采用typedef定义string作为basic_string字符类型实例类的别名,其定义语句如下。
其中,模板类basic_string通过char字符型实例化其类型,即此时处理的字符串为char型。然
后通过typedef关键字定义string为该类类型别名。这样,开发者就可以直接把string作为其类类型
操作。下面所讲述的库提供的字符串类就是直接采用string名称来说明。
C++标准库字符串类的对象实例定义时会涉 该类构造函数来实现构造。对于标准的字符
串类,标准库提供了多个构造函数。开发者需要根据定义对象实例的方式,来决定调用哪个构造
函数来构造字符串对象实例。下面讲解定义实现几种字符串对象构造实例,帮助读者了解标准库
字符串类所提供的字符串对象构造方式。
在定义中,字符串类string提供了多种构造函数,实现了不同方式定义其对象实例并初始化。
q 第一种构造方式,通过传入字符串指针构造并初始化字符串对象。
q 第二个则是通过传入字符个数以 对应的字符来初始化既定个数字符的字符串对象。
q 第三个则仅仅是通过构造函数来分配字符串变量空间,暂时先不作任何初始化工作。
q 第四种方式是通过调用字符串类构造函数隐式地去执行了转换操作,给定义的字符串对象
赋值。
通常软件开发中采用第三种构造方式。程序中仅仅先定义字符串对应的对象,而赋值操作在
实际应用中进行。字符串类string使用时,要注意包含字符串标准库提供的头文件#include 。这样
可以在应用程序中具体的使用字符串标准库的接口。
1.2 string 字符串赋值
C++标准库字符串类提供的字符串赋值操作有多种操作接口可选择。研究字符串类标准定义
可以看出,字符串类赋值操作主要有两种方式:一种利用赋值符号重载实现,即直接使用等于号
的重载而实现。另一种是使用提供的assign()方法接口实现字符串赋值操作。下面将会通过几个赋
值操作的实例,来讲解标准字符串类提供的赋值操作。
1.准备实例
æ ´å¤ ç²¾å½©æ »ç ¥è®¿é ® 1
打开UE工具,创建新的空文件并且另存为chapter1301.cpp 。该代码文件随后会同 akefile文
件一起通过FTP工具传输至Linux服务器端,客户端通过scrt工具访问操作。程序代码文件编辑如
下所示。
本实例主要通过标准字符串类演示字符串对象相互赋值的操作情况。程序主要在主函数中演
示字符串赋值操作,程序具体详解见程序注释与后面讲解。
2.编辑 akefile
Linux平台下需要编译源文件为chapter1301.cpp,相关 akefile工程文件编译命令编辑如下
所示。
上述 akefile文件套用前面的模板格式,主要替换了代码文件、程序编译中间文件、可执行程
序等。在编译命令部分-g选项的加入,表明程序编译同时加入了可调式信息。
3. 编译运行程序
当前shell下执行 ake命令,生成可执行程序文件,随后通过 ake sub it命令提交程序文件
至本实例bin 目录,通过cd命令定位至实例bin 目录,执行该程序文件运行结果如下所示。
本实例中主要使用标准字符串类定义字符串对象,演示了标准字符串类提供的几种赋值方式
的操作。程序中使用到字符串类时,需要include包含提供的头文件。对于标准字符串提供的等号
赋值运算操作,初学者应该比较的熟悉。C++字符串
显示全部