跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++

C++ 开发中 <string> 与 <string.h> 的区别

C++ 开发中常混淆 <string> 与 <string.h>。<string.h> 是 C 语言标准库,基于 char* 操作,含 strcat 等函数;<string> 是 C++ 标准库,定义 string 类对象。根据操作类型选择对应头文件,C++ 标准库通常无 .h 后缀。

极光发布于 2013/3/8更新于 2026/10/2380 浏览
C++ 开发中 <string> 与 <string.h> 的区别

在 C++ 开发过程中,经常会遇到两个容易混淆的头文件引用:#include <string.h> 和 #include <string>。两者的主要区别如下:

1. 语言标准与操作对象

  • #include <string.h>:属于 C 语言标准库,主要用于基于 char* 的字符串操作。常见的字符串操作函数如 stpcpy、strcat 等均在此头文件中声明。
  • #include <string>:属于 C++ 语言标准库,定义了 std::string 类。包含此头文件后可定义字符串对象,例如 std::string str;,后续操作基于该对象进行。

2. 使用建议

在开发代码时:

  • 若需使用 stpcpy、strcat 等对 char* 空间进行操作,应包含 <string.h>。
  • 若需定义 string 对象,应包含 <string>。
  • 若两种操作都需要,则两个头文件均需包含。

记忆技巧:C++ 中的标准库头文件一般不带 .h 后缀,例如 <iostream>。

目录

  1. 1. 语言标准与操作对象
  2. 2. 使用建议

更多推荐文章

查看全部
  • 冻结语言模型参数进行 Prompt 微调的技术解析
  • .NET WebApi 项目必要配置项详解
  • JDK 下载与安装指南
  • lora-scripts 实现 Stable Diffusion 全流程自动化微调
  • Android 本地数据存储:SQLite 增删改查实战
  • VS Code 关闭 Copilot 代码 AI 补全
  • C++ 入门:一维数组基础与实战
  • Git 原理与使用进阶:远程协作、标签管理及企业级开发模型
  • Python AI 大模型部署指南:本地运行、API 服务及 Docker 封装
  • 无人机远程身份识别:开源 RemoteID 部署实战
  • C++ 移动语义与右值引用详解
  • DeepSeek-R1 大模型基于 MS-Swift 框架的部署、推理与微调实战
  • Java 动态代理核心原理与实战对比
  • DeepSeek-R1 大模型基于 MS-Swift 框架部署与微调实践
  • AI 核心概念解析:Skill、MCP 与 Function Call
  • Java 基础实训:HelloWorld 输出与命令行参数处理
  • 前端与服务器时间同步方法及 Vue3 实现示例
  • 滑动窗口算法详解:高效解决子数组与子串问题
  • OpenVLA 模型微调与机器人平台部署实战
  • 前端国际化最佳实践指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online