C++常见函数——strcpy()与strcpy_s()的作用及区别

一、函数功能

strcpy()与strcpy_s()都是字符串赋值函数两者功能几乎一样,在C++中:

name = "ADAS";    // 错误
strcpy(Cstring, value); //正确
二、使用前提

使用strcpy()与strcpy_s()都是存在于头文件中的,所以程序一开始必须要有以下语句:

#include <cstring>
三、两者区别
  • strcpy无法保证有效的缓冲区尺寸,只能确保使用了足够大的缓冲区,而strcpy_s则可以避免以上行为
  • strcpy只有两个参数,strcpy_s可以有两个参数也可以有三个参数;
  • strcpy的使用需引入using namespace std;或者std::strcpy,strcpy_s则不需要。
std::strcpy(str, str1); 
strcpy_s(str, strlen(str1)+1, str1)
strcpy_s(str, str1)
四、示例
// strcpy.cpp -- test the strcpy function and strcpy_s function

#include "stdafx.h"
#include <iostream>
#include <cstring>


int main()
{
    char str1[20];
    char str2[20];
    std::cout << "Please enter str2: ";
    std::cin.get(str2, 20);
    strcpy_s(str1, str2);
    std::cout << "str1 is " << "\"" << str1 << "\".\n";
    char * str;
    str = new char[20];
    strcpy_s(str, strlen(str1)+1, str1);
    std::cout << "str is " << "\"" << str << "\".\n";
    system("pause");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值