众所周知,在C/C++中就好几个string的头文件用来处理字符串函数,但是我一直对其中的区别不胜了解,今天在开发中遇到了一个问题,特此记录下来
C/C++中有如下几个string相关的头文件
//C++中的头文件,其中包含了一个string类
//包含了std命名空间
#include<string>
//定义string类对象
eg. string strObject;
//C中的一个字符串处理函数
#include<string.h>
//定义一个字符串
eg. std::string strObject;
//C中的一个包含了<string.h>和std命名空间的版本
#include<cstring>
//定义一个字符串
eg.string strObject;
//如果 string.h 可以使用的情况下,没有必要使用该头文件
//如果没有定义 __USE_MISC这个变量,这个变量将会在 strings.h 头文件中进行定义
//因为 string.h 中没有进行对这个变量进行定义
#include<strings.h>
一般情况下,在C中的一些头文件,在C++中都有一个去掉".h"后缀的头文件与之对应,比如:
//C++中使用标准输出的头文件
#include<iostream>
using namespace std;
//C中使用标准输出的头文件
#include<iostream.h>
两者区别就是,C++对C的一些头文件做了优化的同时,将一些东西整理到了std标准命名空间里面去了。