C++中strcmp的头文件问题
今天在写程序时遇到的一个问题
#include <stdio.h> #include <string> using std::string; int main() { char str[STEL]; while (scanf("%s", str) && strcmp(str, "end")) { printf("%s = %u\n", str, hash(str)); } return 0; }
写完用g++编译,出现error: ‘strcmp’ was not declared in this scope
上网查找发现必须再加上#include <string.h>才能正确编译执行,即同时存在
#include <string.h> #include <string> using std::string;
也就是说strcmp不在C++标准库中,需要单独包含strcmp所在的头文件。
自己试了下
#include <cstring> using namespace std;
也可以完成,即c的标准库中也包含这个函数