在C ++项目中包含标准头string.h的最佳方法是什么?
最后使用[dot] h,如下所示:
#include <string.h>
或者只是写作
#include <string>
或者,也许,使用另一种我不知道的方式?
谢谢!
答案 0 :(得分:59)
这是两个不同的标题。
<string>
适用于c ++ std::string
类<string.h>
用于c字符串函数(如strlen()
等),对于c ++项目应该是<cstring>
(这是第三个,你不知道)。 答案 1 :(得分:8)
它完全不同!
<string.h>
这个用于C风格字符串的库
<string>
用于C ++字符串
按照C ++标准,您应该使用<cstring>
代替<string.h>
答案 2 :(得分:2)
Wiki说:
C ++标准库还包含了ISO C90 C的18个标头 标准库以“.h”结尾,但不推荐使用它们。所有 C ++标准库中的其他标题 不要 以“.h”结尾。
C标准库中的每个标头都包含在C ++中 标识库名称不同,通过删除.h生成, 并在开头添加'c';例如,'time.h'变为'ctime'。
答案 3 :(得分:1)
string是c ++ stl headfile 提供模板类'string' string.h是c标准头文件 提供许多功能使用。像strlen strcpy memcpy。 如果你想在命名空间std中使用,那就不使用globe命名空间或者不想使用string.h 你可以改用cstring。
答案 4 :(得分:0)
*.h
头文件通常是C头文件,您可以在C ++中使用,可能包含extern "C" { ... }
没有任何*.h
的标头通常是真正的C ++标头。
这只是一个经验法则。
最新和以前的C ++标准(c ++ 11,C ++ 03)定义了像<cstdio>
这样的标头,以正确地包装原始C标头,使用名称空间等。
答案 5 :(得分:-3)
标准是
#include <string>