博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
头文件 string.h cstring string 区别
阅读量:6644 次
发布时间:2019-06-25

本文共 1665 字,大约阅读时间需要 5 分钟。

1.

#include <cstring>   //不可以定义string s;可以用到strcpy等函数
using   namespace   std;
#include <string>   //可以定义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支持了。

转载地址:http://jaevo.baihongyu.com/

你可能感兴趣的文章
34补3-3 rhcs集群基础应用
查看>>
我的友情链接
查看>>
迅雷登录IFRAME需求小记
查看>>
用NuGet安装NewtonSoft.json
查看>>
域和域控制器
查看>>
Apache2.4 + MySQL5.5 + PHP5.5 FCGI方式运行
查看>>
Mac 上安装python3
查看>>
我眼中的OpenFlow
查看>>
走向DBA[MSSQL篇] 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串...
查看>>
Linux 内核配置选项
查看>>
一道算法面试题
查看>>
我的友情链接
查看>>
Bash中的变量类型
查看>>
基于VMWare Workstation 10的VMware ESXi5.5部署和配置
查看>>
[CCNA图文笔记]-3-TCP/IP参考模型和协议的对应关系
查看>>
学习linux—— 文件目录的管理
查看>>
信息安全比赛混淆flag脚本
查看>>
写个屏蔽百度搜索广告的Chrome插件
查看>>
linux之uniq用法
查看>>
java编程心得(持续更新)
查看>>