string.h\cstring\string

本文解析了C语言中的string.h与C++中的cstring及string类的区别,详细介绍了它们的功能和用法,同时对比了MFC中CString类的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://blog.sina.com.cn/s/blog_6ce6d0bf010145or.html

 

首先,要明确的是cstring, string, string.h 是三个文件名,而不是类名,如果你将vs 2010(或者其它版本)安装在默认路径下,这三个文件可以在C:\Program Files\Microsoft Visual Studio 10.0\VC\include路径下找到,查看每个文件里面的内容,结合网上看的一些帖子,我得出以下结论:

    1、string.h是C标准库下的文件,C++向兼容C,所以包含了该文件,这个文件应该是原封不动的与C标准库下一致的。类似这样的文件还有math.h,setjmp.h,stdlib.h,stddef.h等等C标准库下的头文件;

    2、cstring是C++对string.h的简略升级与包装,并将它放置在命名空间std下,该文件的所有代码如下:

图片加载中

    所以,使用cstring时要用using namespace std,cstring里的内容与方法,应该与C标准库下的string.h一致。

    3、而string就与前面两个有本质差别了。它是C++自己开发封装的类,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(),s.erase(),s.insert()等。<string>又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在<string>的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。

 

    另外容易混淆的是,在MFC中,还有CString类,它与cstring是有本质区别的,前者是类名,使用时包含头文件afx.h,后者是文件名,两者实现的方法也大相径庭。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值