可能重复:
string.h和cstring之间的区别?
当包含关于的标准头文件时,C++中有什么更好的编程实践
包括CCD_ 1代替CCD_?
包括CCD_ 3代替CCD_?
而对于其他CCD_ 5和CCD_?
<cstring>
更新;<string.h>
确实具有向后兼容性(当然还有C)。不同之处在于,<cstring>
将字符串函数放在cmath
0命名空间中,而<string.h>
将它们放在全局命名空间中。
此外,<cstring>
改变了某些功能的类型,以提高类型安全性。例如,C申报
char *strchr(char const *, int);
被重载(在std
命名空间中)取代
char *strchr(char *, int);
char const *strchr(char const *, int);
在CCD_ 14的情况下,与CCD_ 15存在进一步的差异,这使得CCD_。
新代码首选<cstring>
,并在函数上使用std::
前缀。