strncpy strcpy memcpy strnprintf strlen等字符串函数的用法和区别

C 标准库 - <string.h>

char *strcpy(char *dest, const char *src)

把 src 所指向的字符串复制到 dest。如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。该函数返回一个指向最终的目标字符串 dest 的指针.

char *strncpy(char *dest, const char *src, size_t n)

把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。该函数返回最终复制的字符串。

void *memcpy(void *str1, const void *str2, size_t n)

从存储区 str2 复制 n 个字节到存储区 str1。
str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
n – 要被复制的字节数。
该函数返回一个指向目标存储区 str1 的指针。

size_t strlen(const char *str)
计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。该函数返回字符串的长度。

C 标准库 - <stdio.h>

int sprintf(char *str, const char *format, …)

发送格式化输出到 str 所指向的字符串。如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。

int snprintf ( char * str, size_t size, const char * format, … );

(1) 如果格式化后的字符串长度小于等于 size,则会把字符串全部复制到 str 中,并给其后添加一个字符串结束符 \0;
(2) 如果格式化后的字符串长度大于 size,超过 size 的部分会被截断,只将其中的 (size-1) 个字符复制到 str 中,并给其后添加一个字符串结束符 \0,返回值为欲写入的字符串长度。

(https://www.runoob.com/cprogramming/c-standard-library-string-h.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值