一个字符串类动机

1)写一个程序读取用户两个数字,加在一起,然后输出答案。程序应该使用两个功能:一个功能命名readnumber()应使用从用户得到一个整数,和函数名为“writeanswer”应该是用来输出答案。你不需要写一个函数来进行添加。

2)修改你写在# 1,从用户的功能和输出答案读一个数的函数在一个单独的文件中称“IO CPP程序。”。使用向前声明从你的main()函数访问它们,这应该生活在“主要CPP。”。

3)修改你写在# 2使其使用头文件而不是向前声明的函数访问程序。确保你的头文件使用头文件保护。

标准库包含了很多有用的类-但也许最有用的就是std::string。std::string(和std::wstring)是一个字符串类,分配,比较提供了许多操作,和修改的字符串。在这一章中,我们将深入到这些字符串类。

注:C风格字符串将被称为“C风格字符串”,而std::字符串(和std::wstring)将被简单地称为“弦”。

一个字符串类动机

在前一课中,我们覆盖的C风格字符串,使用字符数组来存储一个字符的字符串。如果你试图用C风格字符串做任何事情,你会很快得出结论,他们是一个痛苦,容易陷入困境,难以调试。

C风格字符串有许多不足之处,主要是围绕这一事实,你必须自己做所有的内存管理。例如,如果你想指定的字符串“hello!“到缓冲区中,你必须首先动态地分配一个缓冲区的正确长度:

1
char *strHello = new char [7];

不要忘记使用删除而不是正常的阵列删除!

此外,许多C提供的工作数量直观的运营商,如分配和比较,只是不使用C风格字符串。有时会出现工作但是却产生不正确的结果-例如,比较两个C风格字符串使用= =实际上会做一个指针比较,而不是比较字符串。另一个使用运算符=分配一个C风格字符串将出现在第一,但实际上是在做一个指针的拷贝(浅拷贝),这通常不是你想要的。这些事情可能会导致程序崩溃,是很难找到和调试!

底线是,与C风格字符串工作需要记住很多挑剔的规则什么是安全/不安全的,记住一大堆有趣的名字一样,而不是使用直观的运营商strcat()和strcmp()功能,并做了大量的手动内存管理。

幸运的是,C++标准库处理字符串提供一种更好的方法:std::字符串和std::wstring类。利用C++的概念如构造函数,析构函数,和std::string操作符重载,允许你创建和操作在一个直观的和安全的方式串!没有更多的内存管理,没有更多的奇怪的函数名称,并大大减少潜在的灾难。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值