C++中使用strcpy()函数需要#include<cstring>吗?

例如下诉语句:strcpy((ps+0)->name,"MochaMunch");为何我使用VC6.0在头文件中只用了#include<iostream>也能调用strc... 例如下诉语句:
strcpy((ps+0)->name, "Mocha Munch");

为何我使用VC6.0在头文件中只用了#include<iostream>也能调用strcpy函数

用<string>能调用strcpy()吗?
<cstring>和<string>效果一样吗?
用new创建动态数据时:
CandyBar * ps=(CandyBar*)new CandyBar[3]等价于CandyBar * ps=new CandyBar[3]吗?需要这样(CandyBar*)强制类型转换吗?
展开
 我来答
RedNax
推荐于2018-02-28 · 超过24用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:78.4万
展开全部
这不是好几个问题吗?

1.STL库会隐性载入一些C类库,所以iostream里面已经include了strcpy申明的头文件了。我记得有一个对应表的,那些C类库被隐性包含,但我不记得那里找了。

2.<string>包不包含不知道,你自己做做实验吧

3.<cstring>和<string>是两个完全不一样的东西。后者是STL string类的头文件,前者是C++类库对C类库<string.h>的封装(其实内部就只是加了一个namespace,再include了<string.h>而已)

4.不需要类型强制转换,new出来的时候就是相应的类型了,一般new的东西都不需要类型转换(因为只有本类型指针或者需要cast成父类指针这两种可能,后者会做隐式类型转换)。
XHHISEA02274
推荐于2016-10-28 · TA获得超过8万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:3403万
展开全部
不一定!
#include<cstring>与#include<iostream>里都有关于strcpy的声明,所以,这两个只要有一个在,均可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式