string.h
string.h是一個C標准頭文件,所有的C標准頭文件都形如name.h的形式,通過#include <string.h>可以導入此頭文件。之后我們就可以在程序中使用strlen()等函數了。但是一般編譯器認為string.h是基本的頭文件會默認包含,所以我們一般都可以直接使用strlen()等函數而不必主動引入string.h頭文件。
cstring
cstring是C++版本的string.h C標准頭文件,一般C標准的頭文件C++都會定義一個與其對應的C++版本的頭文件形如 cname。C++版本的C標准頭文件cstring其所有的名稱的命名空間都在std中,而C標准頭文件string.h名稱的命名空間是全局的。所以在調用cstring中的strlen()函數時要使用加上std::作用域限定符。
string
string是真正的C++標准庫頭文件,其是string類的頭文件。包含此頭文件就可以使用string類定義可變長度的字符串了,而且還可以使用string的眾多方法來對此string字符串對象進行進一步的操作。例如使用string::size()方法可以獲得string對象的字符數。
總結
string.h與cstring是對應的,一個是C標准頭文件,一個是C++版本的C標准頭文件,包含二者后就可以使用strlen()之類的函數了。string是C++標准頭文件,包含它就可以使用string類實例化對象了。大多數編譯器都會默認包含三個頭文件,所以即便我們不主動包含這三個頭文件也可以進行上述操作。