C++中的string类和string.h头文件是两个不同概念。通常,一个C++的老版本带“.h”扩展名的库文件,比如iostream.h,在新标准后的标准库中都有一个不带“.h”扩展名的对应版本,除了后者有诸多改进外,后者的内容都包含在“std”名字空间中。然而,唯独string类的情况有所不同。原因在于C++要兼容C...
1 C++中string和string.h的作用和区别#include < string .h >void main(){string aaa = " abcsd d " ;printf( " looking for abc from abcdecd %s\n " ,(strcmp(aaa, " abc " )) ? " Found " : " Not Found " );}不能正确实行,提示说是string 类型没有定义而下面:#include < string...
<string>是C++标准定义的头文件,它定义了一个string的字符串类,里面包含了string类的各种操作,如s.size(), s.erase(), s.insert()等。但<string>又包含了老的C版本的字符串操作如strcpy、strcat等,这就相当于,在<string>的文件中除了定义自己的string类之外,还加了一个#include<string.h>...
C++中,string头文件基本上已经包含在iostream中了。 但是,平时使用的时候建议加上#include<string.h>(尤其在以下情况下) 1、使用string类型 2、使用cin、cout语句来输入输出string类型变量(注意,同时还需要#include<sstream>) 3、使用memset()、strlen()、strcpy()等函数时...
这个头文件跟C++的string类半点关系也没有,所以<string>并非<string.h>的“升级版本”,他们是毫无关系的两个头文件。 要达到楼主的目的,比如同时: #include < string .h > #include < string > using namespace std; 1. 或者 #include < cstring > #include < string > ...
1、string.h是C标准库下的文件,C++向兼容C,所以包含了该文件,这个文件应该是原封不动的与C标准库下一致的。类似这样的文件还有math.h,setjmp.h,stdlib.h,stddef.h等等C标准库下的头文件;这个头文件是处理纯char的原生数组的。例如char str[512]。2、而string就与string.h有本质差别了。它是...
1.C的字符串头文件是<string.h>,在C++里这个文件变成了<cstring>,string前面的c表示这个是c语言的;而C++的字符串头文件是<string>,是利用的模板实现的,跟原先C的实现方法不一样,但要安全得多。 2.VC++中有<string.h>文件,它就是C中的那个;
名字空间中。但唯独string特别。问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做“string.h”的头文件,包含一些常用的C字符串处理函数,比如楼主提到的strcmp。这个头文件跟C++的string类半点关系也没有,所以<string>并非<string.h>的“升级版本”,他们是毫无关系的两个头文件。c...
sstring和string.h(和cstring等价)头文件的区别tring和string.h(和cstring等价)头文件的区别 为什么下面这段代码 #include void main() { string aaa= "abcsd d"; printf("looking for abc from abcdecd %s/n", (strcmp(aaa,"abc")) ? "Found" : "Not Found"); ...
同时,g++编译,也不能使用_strdup代替strdup,因为_strdup是MSVC的东西。 对于,<string.h>和<string>,它们决不能等同。 string中的命名空间是std,而string.h中的函数是全局的函数。