string、string.h、cstring三者的区别与联系

1. string、string.h、cstring三者的区别与联系 (1)string是C++标准库里面的string模板,也包含了C风格字符串操作的库函数,因此可以定义string类,使用时需声明namespace std。

(2)string.h是C风格字符串操作的一个库函数,因此使用#include<string.h>时是不能定义string类的,使用时不需声明namespace std。

(3)cstring是把string.h放到std中,它的功能和string.h一样,因为使用了std,所以使用时需要声明namespace std。

    PS:#include<iostream.h>#include<iostream>也是一样的道理。iostream.h是C语言的库函数,不需声明命名空间,而iostream.h则是C++版本的库函数,需声明命名空间。

2. 我们在使用头文件时,为了统一,应该遵循以下原则。

(1)当使用C的库函数时,应该在原C的库函数名前加字符C,把后缀.h去掉。例如,

  //#include<string.h>应变为

  #include<cstring>

  using namespace std;  

(2)当使用C++的函数库时,直接使用不要加后缀.h。例如,

  #include<string>

  using namespace std;

原文地址:https://www.cnblogs.com/yiyi-xuechen/p/3452245.html