头文件cstring,string与string.h的区别

首先说,在C++中,#include "iostream"#include "iostream.h" 的区别:

iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件没有.h扩展名;而将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c,例如cmath就是由math.h变来的,或者直接不加。

一般C里带“.h”扩展名的库文件,比如iostream.h,在新标准后的C++标准库中都有一个不带“.h”扩展名(iostream)的与之相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了std名字空间中。

但唯独string很特别

C++在头文件中定义了string类,但问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做string.h的头文件,这个头文件跟C++的string类并没有什么关系,所以并非的“升级版本”,他们是毫无关系的两个头文件。

所以区别就是:

头文件描述
string.h旧的C 头文件,对应的是基于char*的字符串处理函数;
string包装了std 的C++头文件,对应的是新的string 类;
cstring对应于旧C 头文件的std 版本。
另外

CStringMFC中定义的字符串类,MFC中很多类及函数都是以CString为参数的,另外CString类重载了LPCSTR,(即const char*)运算符,所以如果你在MFC下面使用CString类,就可以直接用CString类做为参数来调用需要一个C语言风格字符串的WinAPI函数,编译器会自动调用LPCSTR成员函数完成从CString到一个C风格字符串的转换。如果你在MFC下使用C++语言中标准的string类,那么在调用需要C语言风格的字符串为参数的WinAPI时,你必须显示调用string.c_str()成员函数,来完成同样的转换,也就是说在MFC里,如果用CString类,会比sting类方便那么一点点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值