c语言的string.h头文件跟C++的string类半点关系也没有,所以<string>并非<string.h>的“升级版本”,他们是毫无关系的两个头文件。
<string.h>是旧的C 头文件,对应的是基于char*的字符串处理函数;<string>
是包装了std 的C++头文件,对应的是新的string 类(看下文);<cstring>是对
应于旧C 头文件的std 版本。如果能掌握这些(我相信你能),其余的也就容易
了。
所以在有的源码里同时包含了这两种文件
#include<string.h> 和#include<string>这两都包含。
详见https://www.cnblogs.com/Cmpl/archive/2012/01/01/2309710.html