1.

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

using   namespace   std;

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

using   namesapce   std;

#include    //不可以定义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

}

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支持了。

java string的头文件_头文件 string.h cstring string 区别相关推荐

  1. 头文件 string.h cstring string 区别

    1. #include <cstring>   //不可以定义string s:可以用到strcpy等函数 using   namespace   std; #include <st ...

  2. java导出标底文件_投标文件怎样导出XML格式

    项目工程建立后,进入项目管理界面 项目工程必须包含单项工程与单位工程,而且项目工程.单项工程.单位工程名称不能一致. 1.所以首先建立一个单项工程,再选择单项工程右键新建单位工程,按照工程专业的不同选 ...

  3. system文件_大文件拷贝,试试NIO的内存映射

    最近项目里有个需求需要实现文件拷贝,在java中文件拷贝流的读写,很容易就想到IO中的InputStream和OutputStream之类的,但是上网查了一下文件拷贝也是有很多种方法的,除了IO,还有 ...

  4. formdata上传文件_大文件分片断点上传实现思路以及方案

    作者:yeyan1996| 来源:掘金https://juejin.im/post/5dff8a26e51d4558105420ed 前言 我在面试的时候确实被问到了这个问题,而且是一道在线 codi ...

  5. 安卓打开rpm文件_微信文件如何分享到QQ?教你一招,不管什么手机都能行

    你是否在工作中遇到这样的难题:工作伙伴在微信给你发了一份重要文件,你想要用手机转发给QQ的好友,但微信和QQ之间又不支持直接分享,这怎么办呢? 是不是有人为了分享文件,特地从手机文件管理器进入到微信. ...

  6. createprocess 系统找不到指定的文件_告别文件混乱和找不到,文件管理的新思路...

    有人说,人的一生差不多有三分之一要浪费在睡觉上,也有人说,人的一生差不多有三分之一的时间要浪费在找东西上.同样,我们使用电脑时,也会浪费大量的时间在找文件上,其根本原因在于文件管理的混乱,你的人生有一 ...

  7. linux删除文件夹下所有文件_手机文件夹全是英文不敢删?删除这6个文件夹,瞬间多出几个G...

    手机使用时间久了,总会面临内存不够的情况,一般情况下我们都会使用手机里自带的手机管家进行清理,但是每次的效果都很一般,可是我们想要对单独的文件夹进行清理时,又会发现文件夹全是英文的,不敢随意乱删,那么 ...

  8. java文件头工具类_判断文件类型工具类

    package com.huawei.fileExerise; import java.io.FileInputStream; import java.io.IOException; import j ...

  9. java中 exe是什么文件_从文件位置运行Java中的.exe文件

    从文件位置运行Java中的.exe文件 我必须从我的Java程序打开一个.exe文件. 所以我试着下面的代码第一. Process process = runtime.exec("c:\\p ...

最新文章

  1. ArcGIS Desktop 9.3.1安装流程
  2. 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL
  3. LTE轻松进阶之帧结构
  4. Arthas 使用的四种方式
  5. Apollo进阶课程㉗丨Apollo控制技术详解——控制理论
  6. amd核芯显卡控制面板自定义分辨率_AMD翻盘,NVIDIA翻车,你的下一张光追显卡选哪个...
  7. 编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入。 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48
  8. Vue 全家桶 + Electron 开发的一个跨三端的应用 1
  9. 计算机双系统,自己在计算机上安装双系统
  10. Redis事务与MySQL事务的区别
  11. 南阳OJ 16 矩形嵌套
  12. SAP Enable Now
  13. EMNLP-21-Exploring Task Difficulty for Few-Shot Relation Extraction
  14. mysql stmt
  15. 永不消失的电波 2020.12.07
  16. python处理淘宝助理csv_淘宝助理上传CSV文件
  17. 2021算法竞赛入门班第一节课枚举贪心习题
  18. 它来了它来了!2020深度学习硬核技术干货集锦!
  19. 支持大S,你一定要幸福!
  20. 银河麒麟操作系统离线安装nginx

热门文章

  1. NYOJ 91 阶乘之和
  2. 优爆文-自媒体文章平台
  3. RSYNC(Linux to Linux)
  4. (转)关于英语听写材料的选择和应用
  5. 数据AES加密安全传输之前端JS加密解密
  6. 什么是抽象类?什么是接口?以及抽象类与接口区别?
  7. vue上传图片到服务器
  8. Linux进程3:父进程等待(wait,waitpid)子进程退出并收集子进程退出状态,僵尸进程
  9. html5表格两列合并_详解html中表格table的行列合并问题解决
  10. 【英语】睡不醒的November