CString与string的区别

分别要包含什么头文件和用法和好处... 分别要包含什么头文件和用法和好处 展开
 我来答
tustnhs
推荐于2017-09-24 · TA获得超过1254个赞
知道小有建树答主
回答量:1084
采纳率:0%
帮助的人:684万
展开全部
CString 是MFC或者ATL中的实现,
string是C++标准库中的实现
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均可);
  char*为C编程中最常用的字符串指针,一般以’\0’为结束标志;

在MFC、ATL中使用字符串尽量使用CString,毕竟都是微软的孩子,各方面都比其它更有优势,而在非微软平台上或对移植性要求较高的场合推荐使用string,标准模板库提供了那么强大的泛型算法,没必要再自己去造车轮。
zhaobey
推荐于2018-08-11 · TA获得超过195个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:78.4万
展开全部
string 是 语言的东西 是c++语言的
CString 是VC++ IDE内嵌的,是MFC的
不是一个概念
CString 离开VC++不能用
string 在任何支持C++的IDE中都能用
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一地美钞
2012-09-24
知道答主
回答量:20
采纳率:100%
帮助的人:4.9万
展开全部
CString 类是微软的visual c++提供的MFC里面的一个类,所以只有支持MFC的工程才可以使用。如在linux上的工程就不能用CString了,只能用标准C++中的 string类了。另外,因为string类是在c++标准库中,所以它被封装在了std命名空间中,使用之前需要声明using namespace std;而CString类并不在std命名空间中,因为它不是c++的标准库,只是微软的一个封装库。这点看来用string类的程序的移植性更好。
(2)string类既是一个标准c++的类库,同时也是STL(Standard Template Library,标准模版库)中的类库,所以支持Iterator操作。
(3)CString类和string类提供的方法接口并不完全相同,所以不要糊里糊涂的认为某个类中怎么没有另外一个类中的方法啊。:-)。。
(4)他们和char*之间的转换方法也不一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式