c++ string类头文件_printf用什么头文件

c++ string类头文件_printf用什么头文件1.string与cstring有什么区别是C++标准库头文件,包含了拟容器classstd::string的声明(不过classstring事实上只是basic_string的typedef),用于字符串操作。是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(NUL即’\0’结尾字符串)相关的一些类型和函数的声明,例如strcmp、strchr、strstr等。和<string.h>的最大区别在于,其中声明的名称都是位于std命名空间中的,而不是后

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.string与cstring有什么区别

是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string的typedef),用于字符串操作。
是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(NUL即’\0’结尾字符串)相关的一些类型和函数的声明,例如strcmp、strchr、strstr等。和<string.h>的最大区别在于,其中声明的名称都是位于std命名空间中的,而不是后者的全局命名空间。
看定义就知道了,string是新标准,定义了namespace std;而cstring虽然也是新标,但是定义中包含的是string.h。

string中可以进行+ = += >等运算,而cstring中不能进行相关运算。

#include //不可以定义string s;可以用到strcpy等函数

using namespace std;

#include //可以定义string s;可以用到strcpy等函数
using namesapce std;

#include <string.h> //不可以定义string s;可以用到strcpy等函数

2.

1)文件cstring,和string.h对应,c++版本的头文件,包含比如strcpy之类的字符串处理函数
2)文件string.h,和cstring对应,c版本的头文件,包含比如strcpy之类的字符串处理函数
3)文件string,包含std::string的定义,属于STL范畴
4)CString,MFC里的的字符串类

string.h是C语言中字符串操作函数的头文件
cstring是c++对C语言中的strcpy之类的函数申明,包含cstring之后,就可以在程序中使用C语言风格的strcpy之类的函数。

string是c++语言中string类模板的申明
CString是MFC中定义的字符串类,MFC中很多类及函数都是以CString为参数的,另外CString类重载了(LPCSTR)运算符,所以如果你在MFC下面使用CString类,就可以直接用CString类做为参数来调用需要一个C语言风格字符串的win api函数,编译器会自动调用(LPCSTR)成员函数完成从CString到一个C风格字符串的转换。如果你在MFC下使用C++语言中标准的 string类,那么在调用需要C语言风格的字符串为参数的win api时,你必须显示调用sting.c_str()成员函数,来完成同样的转换,也就是说在使用MFC里,如果用CString类,会比sting类方便那么一点点。

3.

(1).首先说cstring与string.h:
cstring和string.h其实里面都是C标准库提供的东西,某些实现中cstring的内容
就是:
namespace std
{

#include <string.h>
}
cstring是C++的组成部分,它可以说是把C的string.h的升级版,但它不是C的组成部分。
所以如果你用的是C++,那么请用cstring,如果你用的是C请用string.h。

(2).string与cstring:
一般一个C++库老的版本带“.h”扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。
string,它是C++定义的std::string所使用的文件,是string类的头文件,属于STL范畴。它有很多对字符串操作的方法。

4.string.h是C++标准化(1998年)以前的C++库文件,在标准化过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个”c”前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件。但是其实现却是相同的或是兼容以前的。相当于标准库组织给它盖了个章,说“你也是我的标准程序库的一份子了”

5.cstring代表的是string.h,但是被封装到了std里面,譬如调用strlen函数,需要写成std::strlen(yourstr)才行,这个使用方法比较符合C++的标准要求string就是C++标准库里面的string模板(确切地说应该是一个特化的模板),但是他同样包含了C风格字符串操作函数的定义(应该是通过包含string.h实现的)string.h就不需要使用名字空间了,这个是C风格字符串操作的一个函数库,strlen,strcpy,strcat,strcmp……都在这里面了,不过既然是C风格的库,当然不需要namespace支持了。

## 原文链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194587.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 网络基础知识题_基础有哪些类型

    网络基础知识题_基础有哪些类型本文结合多年来的工作实践,来详细讲述一下作为IT从业人员要掌握的一些基础网络知识。

  • vs实现用户注册登录_用户注册和登录的实现

    vs实现用户注册登录_用户注册和登录的实现publicstaticUserInfoGetUser(stringname,stringpwd){//填写搜索姓名和密码的sql语句stringsql=string.Format(“select*fromUserInfowhereLoginName='{0}’andPassword='{1}'”,name,pwd);DataTabledt=DBHelper.ExcuteTab.

  • 安装Chrome驱动[通俗易懂]

    安装Chrome驱动[通俗易懂]相信许多小伙伴在学习selenium时候遇到驱动器无法运行的错误,就跟我一样,所以写一篇博客讲一讲如何安装这就是谷歌浏览器驱动没有安装成功而产生的报错。下面我给大家简单说说如何安装谷歌驱动器。Windows系统1.下载谷歌浏览器可以参考以下链接https://www.google.cn/intl/zh-CN/chrome然后检测自己的版本2.下载对应的Chrome驱动参考以下的链接http://npm.taobao.org/mirrors/chromedriver/应该可以看到以下

  • 开学几天了,还没有进入状态,继续努力

    开学几天了,还没有进入状态,继续努力

  • 零基础学Java(7)大数

    零基础学Java(7)大数大数如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInte

  • 软件著作权说明书模板_软件设计方案怎么写

    软件著作权说明书模板_软件设计方案怎么写1.引言1.1编写目的1.2项目背景1.2项目概要总体要求2.1系统功能概述2.2系统功能要求软件开发3.1软件需求分析3.2软件的概要设计3.2.1软件概要设计说明3.2.3基本设计概念和处理流程3.3软件的详细设计3.3.1系统结构3.3.2模块设计说明3.3.3爬虫模块3.3.4日志模块3.3.5数…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号