C++ 中自定义 String 类的实现与应用
1. 引言
在 C 风格编程中,字符串通常被实现为指向内存中字符的指针,以空字符 '\0'
结尾,这种表示方式被称为 “C - 字符串”。 <string.h>
头文件定义了许多操作 C - 字符串的函数。而在 C++ 中,我们可以将字符串抽象数据类型实现为一个类,将数据和功能封装在个性化的对象中,这样能让我们将字符串作为 String
类的对象来使用。
2. String 类接口
2.1 字符串定界方法
一般有两种方法来界定未索引的对象序列:
- 使用尾随或终止对象来标记序列的结束,如 C - 字符串使用空字符 '\0'
作为尾随字符,DOS 和 UNIX 操作系统使用换行符 '\n'
作为文件记录的尾随字符。
- 存储序列的长度,如 VAX/VMS 操作系统在文件中存储记录的方式,也是我们实现 String
类的方式:
unsigned len; // 存储的(非空)字符数量
char* buf; // 实际的字符串
2.2 类接口代码
#include <iostream.h>
class String {
friend int operator==(const String