库文件 string.h、cstring、string 你辨清了没
2011-11-02 11:57
134 查看
在 C++ 中,一般情况下,每个扩展名为“.h”的老的库文件,比如 “iostream.h”,在新标准的标准库中都有一个不带“.h”扩展名的库文件与之相对应。两者区别除了后者有很多改进之外,还有一点就是后者的很多东西都塞进了“std”命名空间中。
但唯独 string 特别。
问题在于 C++ 要兼容 C 的标准库,而 C 的标准库里碰巧也有一个名字叫“string.h”的库文件,包含一些常用的 C 字符串处理函数,比如 strcmp。这个库文件与 C++ 的 string 类半点关系也没,所以库文件 string 并非 string.h 的“升级版本”,它们是毫无关系的两个库文件:
1、使用 C 的字符处理函数,需:
#include <string.h>
2、使用 C++ 标准库中的 string 类,需:
#include <string>
using namespace std;
或者
#include <string>
#include <cstring>
3、若想同时使用 C 的字符处理函数和 C++ 的 string 类,需:
#include <string.h>
#include <string>
using namespace std;
或者
#include <cstring>
#include <string>
C++ 里面的“string”往往让初学者摸不着头脑,跟三角恋似的。这不,又来了个三儿“cstring”,这个库文件与 C 标准库的“string.h”相对应,是裹有“std”命名空间的版本。
但唯独 string 特别。
问题在于 C++ 要兼容 C 的标准库,而 C 的标准库里碰巧也有一个名字叫“string.h”的库文件,包含一些常用的 C 字符串处理函数,比如 strcmp。这个库文件与 C++ 的 string 类半点关系也没,所以库文件 string 并非 string.h 的“升级版本”,它们是毫无关系的两个库文件:
1、使用 C 的字符处理函数,需:
#include <string.h>
2、使用 C++ 标准库中的 string 类,需:
#include <string>
using namespace std;
或者
#include <string>
#include <cstring>
3、若想同时使用 C 的字符处理函数和 C++ 的 string 类,需:
#include <string.h>
#include <string>
using namespace std;
或者
#include <cstring>
#include <string>
C++ 里面的“string”往往让初学者摸不着头脑,跟三角恋似的。这不,又来了个三儿“cstring”,这个库文件与 C 标准库的“string.h”相对应,是裹有“std”命名空间的版本。
相关文章推荐
- 头文件 string.h cstring string 区别
- string 和 string.h (和cstring等价)头文件的区别
- 头文件 string.h cstring string 区别
- string 和 string.h (和cstring等价)头文件的区别
- String头文件与CString头文件
- string头文件与cstring头文件
- C++ 头文件cstring,string.h,string 三者的区别
- string 头文件 有点烦<string> <string.h> <cstring>
- 47.VC(custom)-string头文件与cstring头文件
- string.h 或 cstring 头文件包含的字符串操纵函数查询
- 头文件 string.h cstring string 区别
- mfc进阶2~string,string.h和CString三个头文件的区别
- 头文件 string.h cstring string 区别
- 头文件 string.h cstring string 区别
- 头文件string,string.h,cstring
- C++ 头文件cstring,string.h,string 三者的区别
- 头文件 string / string.h(和cstring等价) / cstring
- 头文件 string.h cstring string 区别
- 头文件string,string.h,cstring的器区别和联系
- string和cstring头文件的区别