string和string.h和cstring之间的关联

  1. C语言中没有字符串string类型,字符串是存放在字符型数组中的,将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符''作为结束标志 。
  2. string.h是C风格字符串操作的一个库函数,因此使用#include<string.h>时是不能定义string类的,使用时不需声明namespace std。
  3. string.h是C++标准化(1998年)以前的C++库文件,在标准化过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个"c"前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件。但是其实现却是相同的或是兼容以前的。相当于标准库组织给它盖了个章,说“你也是我的标准程序库的一份子了
  4. 你用的是C++,那么请用cstring,如果你用的是C请用string.h。
  5. string是C++标准库里面的string模板,也包含了C风格字符串操作的库函数,因此可以定义string类,使用时需声明namespace std。
  6. string.h是以前的c版本,包含的是类似strcmp,strcpy的函数,标准化之后变成了cstring。而string是c++的版本,包含了string的类,同时也包含了对cstring的兼容。
原文地址:https://www.cnblogs.com/cyj1258/p/12179216.html