现在的位置: 首页 > 综合 > 正文

string\cstring\CString类\区别

2018年05月05日 ⁄ 综合 ⁄ 共 961字 ⁄ 字号 评论关闭

<string>是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string<char>的typedef),用于字符串操作。
<cstring>是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(NUL即'\0'结尾字符串)相关的一些类型和函数的声明,例如strcmp、strchr、strstr等。<cstring>和<string.h>的最大区别在于,其中声明的名称都是位于std命名空间中的,而不是后者的全局命名空间。
看定义就知道了,string是新标准,定义了namespace std;而cstring虽然也是新标,但是定义中包含的是string.h。

string中可以进行+ = += >等运算,而cstring中不能进行相关运算。

string和CString 的比较  (一) 概述
  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’为结束标志;

关于string的操作:

  gets()是C的函数,getline()是C++的函数,使用方法是getline(cin,string),从输入行的下一行读取,并保存读取的内容到string中。因而不能使用gets获取string的内容

,但getsline,cin可以,若使用scanf读取string,则需要先分配大小

参考:http://wenku.baidu.com/link?url=VmZqNjG1W0vMNH5FwfyWsbkrtKkUE1wyl5YYSYIk5n2e1v5JYrx_d5JNvZDRAba1N4BzjUh-2ExHMOTQPuZusgRim-kHwiVpXGWS_yMpzc3

抱歉!评论已关闭.