cpp string is not a member of std

⌚Time: 2022-08-03 10:46:10

👨‍💻Author: Jack Ge

对于c语言使用string.h,包括以下函数


▪ strncpy

▪ strcat

▪ strchr

▪ strcmp

▪ strnicmp

▪ strlen

▪ strcspn

▪ strdup

▪ stricmp

▪ strerror

▪ strcmpi

▪ strncmp

▪ strncpy函数

▪ strnicmp函数

▪ strnset

▪ strpbrk

▪ strrchr

▪ strrev

▪ strspn

▪ strstr

▪ strtod

▪ strtok

▪ strtol

▪ strupr

▪ swab

而对于c++,使用string类,包含的头文件应该是


#include <string>

一般在C++的库中,对于一个旧的,也就是带“.h”扩展名的库文件(比如iostream.h),在新标准后的标准库中都有一个不带“.h”扩展名的与之相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都塞进了“std”名字空间中。

但唯独string特别。

问题在于C++要兼容C的标准库,而C的标准库里碰巧也已经有一个名字叫做“string.h”的头文件,包含一些常用的C字符串处理函数。

这个头文件跟C++的string类半点关系也没有,所以 < string >并非 <string.h>的“升级版本”,他们是毫无关系的两个头文件。