C++中cstring、string、string.h的区别

在学习算法题的过程中,最常见的就是字符串输入,一般都会涉及到几个不同的头文件,这里总结一下这几个同文件的异同之处。

<string.h>

<string.h>是C语言中和字符串相关的头文件。C语言的内置数据类型中不包括字符串,只有字符数组char[],<string.h>中将字符数组的一些常用操作封装在其中,包含比如strlen、strcmp、strcpy、strcat之类的字符串处理函数。要注意它对应的是字符数组,本身并不是字符串数据类型。

<cstring>

在C++标准化过程中,C++为了向前兼容C语言,标准化组织将所有C语言的头文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个"c"前缀并且去掉了.h的后缀名,所以<string.h>头文件成了头文件,其实现是相同的或是兼容以前的。要注意,此时的依然不是对应着string数据类型,仍然是字符数组char[]

<string>

是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。
又包含了老的C版本的字符串操作如strcmp、strcpy、strcat等,这就相当于,在的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。但是中并没有完全包含<string.h>中所有的方法,并不能认为=<string.h> + string类型。
是新标准,定义了namespace std; 而虽然也是新标,但是定义中包含的是string.h。所以中可以进行+ = += >等运算,而中不能进行相关运算。

原文链接: https://www.cnblogs.com/nullpointer-c/p/15810994.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++中cstring、string、string.h的区别

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/185897

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 上午11:01
下一篇 2023年2月12日 上午11:01

相关推荐