首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><string>和<string.h>的区别是什么?

<string>和<string.h>的区别是什么?
EN

Stack Overflow用户
提问于 2012-02-13 16:48:52
回答 10查看 60.2K关注 0票数 60

这段代码是怎么回事

代码语言:javascript
复制
std::map <std::string , int> m;
m["a"]=1;

使用编译(我使用的是MSVC 2010)

代码语言:javascript
复制
#include <string>

但不是用

代码语言:javascript
复制
#include <string.h>
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-02-13 16:53:34

  • <string.h>包含了像strcpystrlen这样的老函数,用于C风格的以null结尾的字符串。
  • <string>主要包含std::stringstd::wstring和其他类。
票数 90
EN

Stack Overflow用户

发布于 2012-02-13 16:50:37

string.h是C标头而不是C++标头,句号!

票数 21
EN

Stack Overflow用户

发布于 2012-02-13 16:51:51

字符串是cstring - http://www.cplusplus.com/reference/clibrary/cstring/

<string>是c++字符串类- http://www.cplusplus.com/reference/string/

根据Nicol Bolas下面的评论进行编辑,并在谷歌上搜索一下:

<cstring>通常会将与<string.h>相同的内容导入到std名称空间中。<string.h>通常会将所有内容导入到全局命名空间中。不过,根据我的谷歌搜索,这似乎取决于您正在使用的库实现。

就我个人而言,我只在需要C风格的字符串帮助器时才使用<cstring>

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9257665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档