C++中,<cstring>、<string.h>和<string>的关系,①这几个各在什么时候使用?需不需要命名空间?

②什么叫C++标准string类?有多少这样的标准?③什么叫标准类模板库STL?和前面的概念有什么关系?... ②什么叫C++标准string类?有多少这样的标准?③什么叫标准类模板库STL?和前面的概念有什么关系? 展开
 我来答
坐墙静候红杏出
2011-12-30 · TA获得超过7815个赞
知道大有可为答主
回答量:2307
采纳率:0%
帮助的人:5062万
展开全部
首先string.h是C的,不是C++的,包括了操作C风格字符串的函数,如strcpy.strcmp,strcat,strlen等。C 语言里没有字符串这个数据类型,有的只是字符指针或字符数组,C风格字符串也就是以'\0'结尾的字符序列。

然后是cstring。在C++标准化之前,头文件有各种后缀名,如.h,.hpp,.hxx等,标准化之后规定头文件不带后缀名,同时原来的C标准头文件都在前面加了个"c",于是原来C里的string.h,在C++里就变成了cstring,同样的stdio.h,stdlib.h之类的都变成了cstdio、cstdlib一类。为了兼容C,大部分C++编译器都同时提供了这两个版本的头文件,可以认为string.h和ctring是一回事,你可以看一下你的编译器里include目录下的这两个文件,cstring只是简单的include了string.h而已。

所以当你需要使用strcpy.strcmp,strcat,strlen这一类的函数时,在C里include string.h,C++里include cstring或string.h都行。同时,因为C里没有namespace,所以这两个是不使用命名空间的。

最后是string,这个是C++的标准字符串库,定义了string这个类型,当你需要使用这个C++的字符串类时,需要包含这个头文件,同时需要使用std命名空间。

C++标准string类就是C++标准里定义的字符串类,C++标准是由C++标准委员会制定的,目前只有C++ 98这个标准,新的C++0x标准还在草案中。

C++ STL (Standard Template Library,标准模板库)是C++标准的一部分,是一个模板与算法的类集合。它可以使程序员很方便地实现一些标准的数据结构,比如队列、链表以及栈等。
chinaray79
2011-12-25 · TA获得超过178个赞
知道答主
回答量:113
采纳率:0%
帮助的人:112万
展开全部
string.h文件为C++基本字符串处理过程。
CString类为MFC对于字符串处理的一些封装。
STL类库是对字符串或者相关类进行通用的、快速的、类数组的操作方式。string类是STL类库对于字符串操作的实现,比CString类而言,更好用一点。
C++标准String类一般所指就是std::string类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linansx037
2011-12-23 · TA获得超过503个赞
知道小有建树答主
回答量:192
采纳率:100%
帮助的人:80.2万
展开全部
<string.h>是c里面的头文件,由于c++保持对c中<string.h>的兼容,因此这个文件在c++中通常写为<cstring>。<string>是c++自己的字符串的头文件,对字符串操作进行了优化,使其使用更加方便和高效,通常需要在std命名空间中使用。STL是标准模板库,是c++中用模板定义的一些基本的数据结构,比如vector,list等等,代替了c中的数组,链表操作,这些都是定义在std命名空间中的,因此需要在std中使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式