<string.h> or <string>?

<string.h> or <string>?

本文关键字:gt string lt or      更新时间:2023-10-16

在c++项目中包含标准头文件string.h的最佳方法是什么?在结尾使用[点]h,像这样:

#include <string.h>

或者直接写

#include <string>

或者,用另一种我不知道的方式?

谢谢!

这是两个不同的头。

  • <string>用于c++ std::string
  • <string.h>用于c字符串函数(如strlen()等),应该是<cstring>用于c++项目(这是第三个,您不知道)。

完全不同!

<string.h>此库用于c风格字符串

<string> for c++ string

按照c++的标准,你应该使用<cstring>而不是<string.h>

Wiki说:

c++标准库还包含了ISO c90c的18个头文件以".h"结尾的标准库,但不推荐使用。所有c++标准库中的其他头文件不要以".h"结尾。

C标准库中的每个头文件都包含在c++中标准库以不同的名称,通过删除。h生成,在开头加一个"c";例如,'time.h'变成'ctime'。

string为c++ STL头文件提供模板类' string 'h是c标准头文件提供许多功能使用。比如strlen strcpy记忆。如果你想在命名空间std中使用,而不是使用全局命名空间或者不想使用string.h

*.h头文件通常是C头文件,您可以在c++中使用extern "C" { ... }包装

没有*.h的头通常是真正的c++头。

这只是一个经验之谈。

最新和以前的c++标准(c++11, c++ 03)定义了像<cstdio>这样的头文件,使用名称空间等来正确包装原始的C头文件。

标准为

#include <string>