博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CString、char*与string的区别
阅读量:6593 次
发布时间:2019-06-24

本文共 1168 字,大约阅读时间需要 3 分钟。

 

三者的区别

CString 是MFC或者ATL中的实现;

string 是C++标准库中的实现;

char* 为C编程中最常用的字符串指针,一般以’\0’为结束标志。

string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;
CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可);

在MFC、ATL中使用字符串尽量使用CString,毕竟都是微软的孩子,各方面都比其它更有优势,而在非微软平台上或对移植性要求较高的场合推荐使用string,标准模板库提供了那么强大的泛型算法,没必要再自己去造车轮。

 

C/C++ <string> 与<string.h>、<cstring>的区别

<string.h>

<string.h>是C版本的头文件,包含比如strcpy、strcat之类的字符串处理函数。

 

<string>

<string>是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但<string>又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在<string>的文件中除了定义自己的string类之外,还加了一个#include<string.h>一句包含了C版本的字符串操作。

<cstring>
在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个"c"前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件。但是其实现却是相同的或是兼容以前的,这就是<cstring>的来源,不要觉得又多了一个东西。相当于标准库组织给它盖了个章,说“你也是我的标准程序库的一份子了”。

 

 

参考文章

 

 

 

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7654569.html
,如需转载请自行联系原作者
你可能感兴趣的文章
snort安装常见问题及解决方法
查看>>
在ubuntu系统安装jdk
查看>>
Extjs - Panel组件
查看>>
我的友情链接
查看>>
Spfa(最短路求解)
查看>>
使用linux-c编程实现简单的ls命令
查看>>
Q:按F12进行网络安装系统时,一直无法进入,提示加载失败?
查看>>
我的友情链接
查看>>
JAVA API----Math类和Random类
查看>>
求js数组中最小值
查看>>
UVA10018 Reverse and Add
查看>>
【转载】Jquery验证 Jquery.validate详细解读
查看>>
软件需求规格书
查看>>
用Java axis2调用.net平台的Webservice出现的一些问题
查看>>
VS2005内存泄漏检测方法[转载]
查看>>
0619-dedeCMS的安装、重装、目录说明、基本操作及注意事项
查看>>
三角形面积 蓝桥杯
查看>>
form的一个问题
查看>>
数据库操作
查看>>
利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
查看>>