strncpy的用法细节

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

Copies the first num characters of source to destination. If the end of the source C string (which is signaled by a null-character) is found before num characters have been copied, destination is padded with zeros until a total of num characters have been written to it.

No null-character is implicitly appended at the end of destination if source is longer than num. Thus, in this case, destination shall not be considered a null terminated C string (reading it as such would overflow).

destination and source shall not overlap (see memmove for a safer alternative when overlapping).

  1. 当source中的字节小于num个时候,'\0'其实包含在了source所在的字符串中:将 source中 num个字节放入到 destination内存中,如果source中没有num个字节,那么填充0到destination中。
  2. 如果num的长度小于source的长度,那么会在source中截取num个字节放入到destination中,destnation的结尾没有没有\0 符号。
  3. destination与source之间不应该有重叠。
  4. num不应该大于destnation的长度,不然容易丢失数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值