strcpy()函数和strncpy()函数的差别

目录

 1.strcpy()函数的作用

 2.strncpy()函数的作用

 3.它们各自的模拟实现方法


 1.strcpy()函数的作用

strcpy()函数作用是将一个字符串拷贝粘贴到另一个空间地址的函数,它的停止判断是'\0',但依旧会在粘贴后的字符串后面加上'\0'。

该函数的函数声明形式:char * strcpy ( char * destination, const char * source );

其中char * destination为将要被粘贴的地址,char * source为拷贝的地址,返回类型是char*

注意:1.在使用该函数时需要包含头文件<string.h>才可以使用。

           2.被粘贴的地址需要有足够的空间

           3.在拷贝的指针前加上const 修饰,避免改变拷贝的地址 

           4.被粘贴的地址需要使用数组,如果使用指针将会变成常量字符串

           5.它并不会管被粘贴的地址的大小,如果目标空间不够大会导致缓存溢出的错误  

  

 2.strncpy()函数的作用

strncpy()函数和strcpy()函数效果一致,但可以限制复制的大小

它的函数声明形式是:

char * strncpy ( char * destination, const char * source, size_t num );

它的前两个参数都与strcpy()函数一致,但多了一个size_t num,它的主要作用就是为了限制复制的内容大小,避免溢出的情况

注意:strncpy()函数同样也需要<string.h>头文件才可以使用

 3.它们各自的模拟实现方法

strcpy()函数的实现方法

char* my_strcpy(char* dest, const char* src)
{ 
 char* ret = dest;
 assert(dest != NULL);
 assert(src != NULL);
 
 while((*dest++ = *src++))
 {
  ;
 }
 return ret;
}

strncpy()函数的实现方法

char* my_strncpy(char* dest, const char* src, size_t num)
{
    assert(dest && src);
    char* ret = dest;   
	for (int i = 0; i < num; i++)
	{
		*dest = *src;
		dest++;
		src++;
	}
    return ret ; 
}

这篇文章就到这里了,谢谢能够读到这里的读者,希望本篇文章的内容对你有用。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值