C++中String类与char array的区别

        区分研发人员的素质有两方面,一是从大处着手,思考问题和解决问题的方法;另外一个就是从小处考查,一些技术点或者经典技术难题。相信很多程序员在从C语言转入C++语言之后,开始接触面向对象和封装的概念,不过这些东西在C语言里面也有,这里有一个经典的问题是:C++中的String类和C语言中的字符数组区别是什么?

        其实C++中的String类只是对C语言中的字符数组做了一个封装,我们来看看C++标准函数库中String类的定义:

template<
    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>
> class basic_string;

std::string与std::basic_string<char> 的关系为typedef方式。


        针对上面这个问题的解答,可以尝试着了解下面几个问题,答案就迎刃而解了:

(1)string.h与cstring在C++的头文件包含里面有何区别?  (例如兼容性)

(2)String类对字符数组进行封装,有什么好处?  (例如避免常见的数组越界,减轻程序员负担)

(3)String类中存储的字符串是不是以'\0'结尾的?   (视编译器而定)

        实质上,这些问题都是与标准库的演进有关,在某些时间段,某些解答是正确的,多动手实践才能检验真理。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值