string.h
是
C
头文件,对应的是基于char*的字符串处理函数 ,如strcmp()等等
string 是
C++
头文件,是字符串类,需要加 using namespace std;
string
cstring 是是
C++
头文件,包含
C
字符串的处理函数,需要加 using namespace std。尽管在C++中包含string.h是允许的,但C++标准建议用头文件cstring来替代string.h
如果要定义string类型,需要#include
和using
namespace
std。如果要使用string的一些处理函数,比如strcpy和strcmp,需要#include
< string>和是两个功能不同的东西。
问题:
a和b是两个string类的字符串,用strcmp比较a和b要怎么做?
答案:
问题是已经是string类了,你为什么需要用strcmp去比较?这是把 C++的风格和C的风格混合再一起,不伦不类的。
不能用strcmp比较:因为string是个类,所以string a,b;那么a,b就是对象。俩个对象不能用strcmp比较,因为没有写这个函数,不过string类中对> < >= <= !=进行了重载,所以你直接用a>b a
当然如果非要用strcmp可以:strcmp( a.c_str(), b.c_str())