写c++程序的时候,使用 #include <string> 的时候,使用函数前要用
using namespace std; 导入命名空间。
因为c++增加了名称空间概念,将原来声明在全局空间下的标识符声明在了namespace std下。
#include <string> using namespace std; void main() { string user = "jiangzhihao"; printf("looking for jiang from jiangzhihao %s\n", (strcmp(user.c_str(), "jiang")) ? "found" : "not found"); string a = "aaaa"; const char* ch_a = a.c_str(); printf(ch_a); printf("\n"); string b = "bbbb"; const char* ch_b = b.data(); printf(ch_b); printf("\n"); //c_str()和data()有什么区别呢? //c_str()会在数据的末尾添加'\0'结束符,多数用于使用字符串场合。 //而data()函数不会添加'\0'结束符。 }
也就是说带 .h 的头文件是旧标准的,如果想用新的标准的头文件就不要带 .h。
另外,为了和c语言兼容,c++标准化过程中,原有c语言头文件标准化后,头文件名前带个
c字母,如cstdio、cstring、ctime、ctype等。
其他:
<*.h> 表示优先从系统目录中查找该头文件,比如 #include 这是系统中的。
“*.h” 表示优先从当前目录中查找该头文件,比如 #include “head.h” 这是自己写的。