这三个头文件的区别分析请教

来源:百度知道 编辑:UC知道 时间:2024/05/24 18:03:40
#include <string.h>

#include <cstring>
#include <string>

<string.h> 是C的头文件
<cstring> 和 <string> 是C++ 的头文件

从内容上来说 <string.h> 和 <cstring> 类似,主要是对C风格字符串操作的各种函数的声明,如:
memcpy()、memmove()、strcpy()、strcat()、strcmp()、memset()、strlen()等函数。
详细内容可参阅这里
http://www.cplusplus.com/reference/clibrary/cstring/
<string.h>与<cstring>的区别在于后者将以上函数声明都置于std的命名空间中,以符合STL的统一,也防止命名混乱;而前者是作为全局函数声明的。

最后<string>头文件是C++的通用模板库STL的文件之一,主要声明了STL的字符串类型 string 及其上的各种操作,用以弥补C风格字符串在操作上的一些不足之处。具体使用可参考STL用户手册或MSDN等。
http://www.cplusplus.com/reference/string/string/

如果用C编程的话只能使用<string.h>头文件
如果用C++的话,这三个都能用,但不建议用<string.h>,毕竟C++引入了更标准的<cstring>用以完全替代前者。如果经常需要字符串输入输出等操作可以学习使用STL中的string类型(要包含<string>文件),结合输入输出流及字符串流stringstream使用相当方便