- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
\0
\0。
String str=s2+s3;然后再赋给第
String str=s2+s3;
然后再赋给第 1 个字
String 类。
编写一个精简版的 string 类
该类的具体功能如下所示 .
计算字符串的长度,类似于 string 类的 size 或者 length
可对字符串进行赋值,如 String str=hello world;
可将 char 型字符串直接赋给 String 型字符串,如:
String str=Hello world;
char ch[10]=not at all; str=ch;
可如同对象那样将字符串进行初始化, String str(Mother);
可将两个字符串相加,然后将合并后的字符串赋给另一个字符串,如
可执行加等操作 (+=),也就是将第 1 个字符串与第 2 个字符串相加, 符串,如: String s1+=s2
可对两个字符串进行比较,如 str1==str2 , str1str2 或者 str1str2.
可根据字符串的大小自动调节保存字符串的数组的大小。
限制数组越界
通过成员函数输出字符串,如 s1.getlen() 。
通过重载输出运算符 输出字符串,如:
string s1(hello),s2(good); couts1s2;
通过重载输入运算符 输入字符串,如: cins1s2
创建 String 类
上节简单地对精简版的 String 类的功能进行了介绍,本节首先实现这个 我们知道C++自带的String类在声明一个字符串后,如:
String s;
该字符串s仅仅是声明,并未初始化,因此该字符串是个空字符,只保存了结束符号 我们首先来实现这个功能。
个空字由于对象的创建是通过构造函数来实现的, 因此我们可以通过默认构造函数来构造
个空字
符串。
通过String类的默认构造函数实现空字符串。程序代码如下:
1.2.3.4.5.6.#in clude iostream using n amespace std; class String{public:7.Strin g();int getle n()con st{retur n len;}8.9.private:10.
1.
2.
3.
4.
5.
6.
#in clude iostream using n amespace std; class String
{
public:
7.
Strin g();
int getle n()con st{retur n len;}
8.
9.
private:
10.
11.
12.
int len; char *str;
13.
14.
};
Stri ng::Stri ng()
{
15.
16.
len = 0;
str= new char[1];
str[0]=\0:
17.18.
17.
18.
19.
}
int _tmain(int argc, _TCHAR* argv[])
{
20.21.22.23.
20.
21.
22.
23.
24.
Stri ng s1; couts1.getle n(); system(pause); return 0;
输出:0
分析:第6行声明了一个默认构造函数,第
分析:
第6行声明了一个默认构造函数,第
12~17行是该函数的定义部分。
第14行将所创建的字符串的长度 len
设置为0,len在第9行定义。
第15行在堆中创建一个 char型数组,该数组只有一个元素, str保存该数组的地址,char
型指针str在第10行定义。
第16行将char型数组str中唯一一个元素保存结束字符 \0,因此该char型数组变成了
个字符串,一个长度为 0的空字符串。
main函数开始于第19行,第20行用我们创建的String类声明了一个字符串 si,然后第21
行输出该字符串的长度,为 0?成员函数getlen()在第7行定义,它的作用是返回字符串长度
len的值。
创建可以自动调节大小的 Stri ng类字符串对象
本节我们将在已创建空字符串的基础上创建一个有字符的字符串, 并且该字符串课根据字符
的长度自动调节数组的大小。
要实现这个功能,我们需要一个带参数的构造函数,如:
Strin g::Stri ng(const char*c onst ch)
{
len = strle n( ch);
str = new char[le n+1];
for(i nt i=0;ile n;i++)
str[i] = ch[i];
str[le n]=\0:
}
复制代码
这样,假如我们定义并初始化了一个字符串,如 String s(Hello world); 就会自动调用
这个带一个参数的构造函数,同时将 he
文档评论(0)