c++ #include<cstring>后还要#include<string>吗?

只有#include<cstring>可以声明定义string变量和字符串处理函数
只有#include<string>只能声明定义string变量

既然如此,为何还要#include<string>?是不是#include<string>在#include<cstring>基础上增加了新功能?
那有了#include<cstring>的基础上声明时候还要#include<string>?
“声明” 改为 “什么”

有点弄错了,在不包含
#include<cstring>和#include<string>的情况下也可以声明定义string a="abc"
但是,#include<string>重载了<< 和 >>操作符,包含#include<string>才可以输入输出 a;
#include<cstring>当要用到字符串处理函数的时候才要包含

加上#include<cstring>表示引用的C语言 string.h标准库函数 可以使用如 strcpy等函数
而#include<string> 只是引用了C++封装的string这一个类 你可以看成是强化版的字符串类型 他没有处理函数
所以 如果用到字符串处理函数的时候就要加上#include<cstring>
用到string 类型 肯定要加#include<string>
如果没有用到 字符串操作函数 如strlen strcpy strcmp 等 就可以不加 #include<cstring>了
但是用到了 必须要加噢
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-06
CString 是MFC中的实现的一个类,
string是C++标准库中的实现
string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中

#include<iostream>
#include <string>
using namespace std;
int main()
{
string str;
char a[100]="aaaaa";
str="aaaaa";
if(str==a)
cout<<"hello"<<endl;
return 0;
}
第2个回答  2014-08-06
#include<string>和#include<cstring>是一样的 前者是在C语言风格 后者是C++风格 很多头文件在转换为c++风格时在前面加C 像math.h 转换为c++风格就是cmath追问

。。。。
#include和#include才是一样的

相似回答