<string.h>、<cstring>和<string>的关系

1.首先string.h是C的,不是C++的,包括了操作C风格字符串的函数,如strcpy.strcmp,strcat,strlen等。C 语言里没有字符串这个数据类型,有的只是字符指针或字符数组,C风格字符串也就是以'\0'结尾的字符序列。

2.然后是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,所以这两个是不使用命名空间的。

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

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

C++ STL (Standard Template Library,标准模板库)是C++标准的一部分,是一个模板与算法的类集合。它可以使程序员很方便地实现一些标准的数据结构,比如队列、链表以及栈等
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值