C++ 使用strcpy_s函数将字符串复制到字符数组

C++使用strcpy_s函数将字符串复制到字符数组,如何操作?在VS当中,strcpy已经被禁用了,原因不安全,所以使用strcpy_s不要说不行,书上写着:可以使用函... C++ 使用strcpy_s函数将字符串复制到字符数组,如何操作?
在VS当中,strcpy已经被禁用了,原因不安全,所以使用strcpy_s
不要说不行,书上写着:可以使用函数strcpy将字符串复制到字符数组中
而strcpy_s是strcpy的升级版

回答请一针见血。
下面是我代码:

#include <iostream>
#include <string>
int main()
{
char name1[20] = "吃了没?世界";
std::string name2 = "吃了" ;
strcpy_s(name1,name2.size()+1,name2);
std::cout << name1 << std::endl;
std::cin.get();
return 0;
}
展开
 我来答
四舍五不入6
高粉答主

2020-03-06 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.1万
展开全部

#include <iostream>

#include <string>

int main()

{

char name1[20] = "吃了没?世界";

std::string name2 =  "吃了" ;

strcpy_s(name1, name2.size()+1, name2.c_str());//这个改成name2.c_str(),name2是string类型,不是char*

std::cout << name1 << std::endl;

std::cin.get();

return 0;

}

扩展资料:

strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。在程序运行时,这将导致不可预料的行为。用strcpy_s就可以避免这些不可预料的行为。

strcpy_s 一般使用三个参数

errno_t strcpy_s(

char *strDestination,

size_t numberOfElements,

const char *strSource

);

jiangsanhuo
2014-08-06 · TA获得超过168个赞
知道小有建树答主
回答量:291
采纳率:81%
帮助的人:173万
展开全部
strcpy_s有两个重载版本
strcpy_s<dest size>(dest,src);
dest size必须是编译期常量 且必须是sizeof(dest);

第二个版本是目的长度执行期才知道

strcpy_s(dest, sizeof(dest),src);

之所以加后缀 _s 是因为防止拷贝时缓冲区溢出,所以程序员务必告诉 C runtime 目的地址确切的长度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龍__鳳
推荐于2018-02-27 · TA获得超过2346个赞
知道小有建树答主
回答量:948
采纳率:0%
帮助的人:1395万
展开全部
#include <iostream>
#include <string>
int main()
{
    char name1[20] = "吃了没?世界";
    std::string name2 =  "吃了" ;
strcpy_s(name1, name2.size()+1, name2.c_str());//这个改成name2.c_str(),name2是string类型,不是char*
    std::cout << name1 << std::endl;
    std::cin.get();
    return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2014-08-06 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3240万
展开全部
要不要把
strcpy_s(name1,name2.size()+1,name2);

写成
strcpy_s(name1,name2.size()+1,name2.c_str());

啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式