strcpy与strcpy_s

本文详细介绍了C语言中用于字符串复制的两个标准库函数:strcpy和strcpy_s。讲解了这两个函数的区别,特别是在安全性方面的不同之处,并提供了具体的实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

strcpy

C语言标准库函数,包含头文件:#include<stdio.h>   #include<string.h>

实现:

char *strcpy(char *des, const char *source)
{
    char *r = des;
    assert((des!=NULL) && source!=NULL);
    while((*r++ = *source++) != '\0');     //赋值表达式返回左操作数,所以在'\0'后,循环停止
    return des';
}
使用时注意:若数组长度不足以容纳整个字符串,则会导致程序出现不可预知的错误。


strcpy_s

与strcpy的功能几乎是一样的。

区别:strcpy无法保证有效的缓冲区尺寸,只能确保使用了足够大的缓冲区,而strcpy_s则可以避免以上行为。

有两个参数和三个参数两种类型。

三个参数时:

errno_t strcpy_s(char *strDestination, size_t numberofElements,  const char *strSource){}

两个参数时:

errno_t strcpy_s(char (&strDestination)[size], const char *strSource){}//C++ only

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值