头文件 string.h cstring string 区别

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

时间: 2024-10-10 22:30:38

头文件 string.h cstring string 区别的相关文章

【转】&lt;string&gt; &lt;string.h&gt; &lt;cstring&gt;的区别

#include < string.h > void main(){ string aaa = " abcsd d " ; printf( " looking for abc from abcdecd %s\n " , (strcmp(aaa, " abc " )) ? " Found " : " Not Found " );}//不能正确执行,提示说是string类型没有定义而下面:#incl

C++中#include包含头文件带 .h 和不带 .h 的区别

C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些不同? 之前在写C++程序的时候只知道使用 #include <iostream> 的时候,使用函数前要用 using namespace std; 导入命名空间,而 #include <iostream.h> 则不用,这个得看C+ +标准化过程为C++开发者做了哪些有意义的工作. (

string string.h=cstring=str

<string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新的定义,加入到了标准库中,加入后的文件名就新增了一个"c"前缀并且去掉了.h的后缀名,所以string.h头文件成了cstring头文件.但是其实现却是相同的或是兼容以前的,这就是<cstring>的来源,不要觉得又多了

头文件---#include&lt;***.h&gt;和#include&quot;***.h&quot;的区别

采用"< >"方式进行包含的头文件表示让编译器在编译器的预设标准路径下去搜索相应的头文件,如果找不到则报错. 例如:VS的安装目录\Microsoft Visual Studio 9.0\VC\include下面就包含了标准库的头文件. 第二种方式表示先在工程所在路径下搜索,如果失败,再到系统标准路径下搜索. 所以,特别要注意的是,如果是标准库头文件,那么既可以采用<>的方式,又可以采用" "的方式,而用户自定义的头文件只能采用"

头文件&lt;stdlib.h&gt;

头文件<stdlib.h>被发明的目的是为了定义和声明那些没有明显的归属地宏和函数.它声明了4中类型和几个具有一般功能的函数,还定义了几个宏1.类型:size_t 这是无符号整数类型,它是sizeof关键字的结果.wchar_t 这是一个宽字符常量大小的整数类型.div_t 这是div函数返回的结构.ldiv_t 这是ldiv函数返回的结构.2.宏:NULL 这个宏是一个空指针常量的值.EXIT_FAILURE 这是 exit 函数失败时要返回的值.EXIT_SUCCESS 这是 exit 函

几大常用头文件stdio.h,stdio.h ,stdbool.h里的定义

C 标准库 - <stdio.h> 简介 stdio .h 头文件定义了三个变量类型.一些宏和各种函数来执行输入和输出. 库变量 下面是头文件 stdio.h 中定义的变量类型: 序号 变量 & 描述 1 size_t  这是无符号整数类型,它是 sizeof 关键字的结果. 2 FILE  这是一个适合存储文件流信息的对象类型. 3 fpos_t  这是一个适合存储文件中任何位置的对象类型. 库宏 下面是头文件 stdio.h 中定义的宏: 序号 宏 & 描述 1 NULL

头文件&lt;locale.h&gt;

头文件<locale.h>定义了特定地域的设置,如日期格式和货币符号. <locale.h>中声明了两个函数和一个类型,并且定义了一些宏. Linux version 2.6.32-573.el6.x86_64中的<locale.h>源码: /* Copyright (C) 1991,1992,1995-2002,2007,2009 Free Software Foundation, Inc. This file is part of the GNU C Library

预编译头文件 StdAfx.h

预编译头文件: 最常见的使用场景就是 StdAfx.h 文件,在这个文件中包含常用的头文件,比如windows.h,cstdio,string,别的 .cpp 文件去包含 StdAfx.h 头文件.编译的时候 StdAfx.h 尽管被多个 .cpp 包含,但只会编译一次.加快了编译速度. StdAfx.cpp 专门用来生成预编译文件,StdAfx.cpp 里只有一行代码 #include "StdAfx.h", 编译 StdAfx.cpp 会产生一个 .pch 文件.别的 .cpp 文

头文件&lt;stdio.h&gt;

头文件<stdio.h>声明了三种类型,一些宏和很多执行输入输出的函数.1.类型:FILE 它是一个对象类型,可以记录控制流需要的所有信息,包括它的文件定位符.指向相关的缓冲的指针.记录是否发生了读/写错误的错误指示符和记录文件是否结束的文件结束符.fpos_t 它是一个对象类型,可以唯一指定文件中的每一个位置所需的所有信息.size_t 这是无符号整数类型,它是sizeof关键字的结果.2.宏:NULL 这个宏是一个空指针常量的值._IOFBF._IOLBF.IONBF 这些宏扩展了带有特定