1.string与cstring有什么区别

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

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

#include //不可以定义string s;可以用到strcpy等函数

using namespace std;

#include //可以定义string s;可以用到strcpy等函数
using namesapce std;

#include <string.h> //不可以定义string s;可以用到strcpy等函数

1)文件cstring,和string.h对应,c++版本的头文件,包含比如strcpy之类的字符串处理函数
2)文件string.h,和cstring对应,c版本的头文件,包含比如strcpy之类的字符串处理函数
3)文件string,包含std::string的定义,属于STL范畴
4)CString,MFC里的的字符串类

string.h是C语言中字符串操作函数的头文件
cstring是c++对C语言中的strcpy之类的函数申明,包含cstring之后,就可以在程序中使用C语言风格的strcpy之类的函数。

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

(1).首先说cstring与string.h:
cstring和string.h其实里面都是C标准库提供的东西,某些实现中cstring的内容
就是:
namespace std
{
#include <string.h>
}
cstring是C++的组成部分,它可以说是把C的string.h的升级版,但它不是C的组成部分。
所以如果你用的是C++,那么请用cstring,如果你用的是C请用string.h。

(2).string与cstring:
一般一个C++库老的版本带“.h”扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。
string,它是C++定义的std::string所使用的文件,是string类的头文件,属于STL范畴。它有很多对字符串操作的方法。

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

5.cstring代表的是string.h,但是被封装到了std里面,譬如调用strlen函数,需要写成std::strlen(yourstr)才行,这个使用方法比较符合C++的标准要求string就是C++标准库里面的string模板(确切地说应该是一个特化的模板),但是他同样包含了C风格字符串操作函数的定义(应该是通过包含string.h实现的)string.h就不需要使用名字空间了,这个是C风格字符串操作的一个函数库,strlen,strcpy,strcat,strcmp……都在这里面了,不过既然是C风格的库,当然不需要namespace支持了。

string与cstring区别相关推荐

  1. C++ 头文件cstring,string.h,string 三者的区别

    一般一个C++的老的带".h"扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带".h"扩展名的相对应,区别除了后者的好多改进之外,还有 ...

  2. string/string.h/cstring头文件的区别摘要

    1. #include <cstring>   //不可以定义string s:可以用到strcpy等函数 using   namespace   std; #include <st ...

  3. 头文件 string.h cstring string 区别

    1. #include <cstring>   //不可以定义string s:可以用到strcpy等函数 using   namespace   std; #include <st ...

  4. 头文件cstring、string、string.h的区别

    头文件cstring.string.string.h的区别 <string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进 ...

  5. java string的头文件_头文件 string.h cstring string 区别

    1. #include    //不可以定义string s:可以用到strcpy等函数 using   namespace   std; #include    //可以定义string s:可以用 ...

  6. string和cstring头文件的区别

    1.string与cstring有什么区别 <string>是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_s ...

  7. C\C++中头文件string与string.h的区别

    http://www.cnblogs.com/Cmpl/archive/2012/01/01/2309710.html 在C++中,#include<iostream>与#include& ...

  8. 头文件string与string.h的区别

    #include<iostream>与#include<iostream.h>的区别 在C++中,#include<iostream>与#include<io ...

  9. JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

    一.首先来说说fastjson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发.其主要特点是: ① 快速:fastjson采用独创的算法, ...

最新文章

  1. 四川师范大学大学计算机基础,四川师范大学2009-2010学年计算机基础期末考试试题.doc...
  2. apache2 指令存取
  3. IPv6的脚步声近了!
  4. WinAPI: waveInUnprepareHeader - 清除由 waveInPrepareHeader 完成的准备
  5. scanperiod 不生效
  6. iOS工作笔记之NSClassFromString
  7. efcore技巧贴-也许有你不知道的使用技巧
  8. PMP读书笔记(第13章)
  9. JS--Console.log()详解
  10. 微软sharepoint团队博客
  11. R语言快速学习第一部分(有其他语言基础)
  12. DHTML Scriptlets 容器对象参考手册
  13. 计算机函数说课ppt,幂函数说课课件
  14. 坚定不移地做自己认为正确的事情
  15. Windows 10 微软拼音输入法无法输入中文标点符号
  16. python爬虫--不限平台歌曲下载(收费也可)
  17. 光线cms,如何增加像百度一样的智能提示
  18. 【编辑器】unity自动化生成UI模板代码
  19. python语法糖 -- 列表正负数的排序
  20. 【翻译】为深度学习购买哪种GPU: 我在深度学习中使用GPU的经验和建议

热门文章

  1. 【Linux】Linux多线程
  2. C语言变长数组(柔性数组)
  3. vbox下的虚拟机ubuntu1604升级安全更新
  4. IP 地址解析与子网划分教程
  5. DNS原理、进阶、编译
  6. 机器人瓦力材质库下载_机器人总动员 4K蓝光原盘下载+高清MKV版/ 大空奇兵·威E(港) / 瓦力(台) 2008 60.4G...
  7. h5学习笔记:学习frozenui 的ui-row代码
  8. 【大数据】要点整理-《数据治理与档案信息资源体系建设》
  9. java swing开发窗体程序开发(一)GUI编程
  10. 使用tushare筛选某一天的ST股票