为什么有这么多string相关的头文件呢,小编秦始皇今天带大家看一下:
1.[string.h]
定义如下:“C语言标准库中一个常用的头文件,在使用到字符数组时需要使用。[string.h] 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。常用函数有strlen、strcmp、strcpy等等”。
注意:[string.h] 是c语言的东西,并无类,所以不能 string s1,只能用char。
2.[cstring]
在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个”c”前缀并且去掉了.h的后缀名,所以[string.h]头文件成了[cstring]头文件。但是其实现却是相同的或是兼容以前的。
注意:这个就是C艹版的[string.h],与前者包含的内容是一样的,只是这样写说明原头文件也是标准程序库(即裹有std名字空间)的一份子,因此可以与前者等价使用。
3.[string]
在C语言中,一般使用字符数组char str[]存放字符串,但是这样很麻烦(我就不喜欢用)。因此在C++在STL中加入string类型,并对字符串常用的功能进行了封装(例如insert()、length()\size()等)。
注意:这个头文件跟C++的string类半点关系也没有,所以[string]并非[string.h]的“升级版本”,他们是毫无关系的两个头文件;使用时同时还要在头文件下添加using namespace std。
最后总结一下:1和2一样,无非是写法风格问题,而3则不同,其中包含了标准模板库里的许多方便的函数,因此在使用string类时要用3,其余情况则可只使用1或2。
好的,相信大家都知道这三者的区别了,我们下期再会。