几个重要的库函数strpcy\strncpy\memcpy……

本文详细介绍了C语言中几个重要的库函数,包括strcpy、strncpy和memcpy的使用及其注意事项。strcpy用于字符串拷贝,需要注意目标字符串长度足够且确保末尾有''。strncpy在strcpy基础上增加了复制指定数量字符的选项。memcpy则可以处理任意类型的数据,但不处理字符串的''。此外,还提到了memset函数的作用和在构造函数中慎用memset的原因。
摘要由CSDN通过智能技术生成
  1. strcpy
    strcpy函数的原型是:
    char * strcpy(char* dest, const char* src)
    strcpy的实现经常要注意的细节是:
    (1)判断地址是否为空,个人感觉可以使用断言
    (2)参数只有两个地址,没有拷贝的长度。拷贝到’\0‘时就会终止,要保证最终dest末尾是’\0’。
    (3)要保证目标字串的长度足够,能够容纳原串的长度。
    (4)因为拷贝是dest会移动,而最终要返回的是拷贝后字符串的起始地址,因此要先保存dest的地址,便于最终返回。
    在实现这一点时,有两种方法。 char* temp=dest; 拷贝时移动dest返回temp,或者拷贝时移动temp返回dest,不知道哪个是对的。感觉两个都是没有问题的。

  2. strncpy
    strncpy的功能和strcpy相似,只是它复制时多了一个终止条件。即是未遇到原串的’\0’,如果已经复制了n个字符(n为提供的参数长度),复制同样会终止。
    strcpy的实现要注意的细节也基本适用于strncpy的实现。

  3. memcpy
    memcpy和strncpy有些类似,但也有本质的不同。
    (1)strncpy只能复制字符串,但memcpy对类型没有要求。
    (2)strncpy有两个终止条件,memcpy只有一个终止条件,那就是复制n个字节。(n是memcpy的第三个参数)
    (3)要特别注意目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值