字符串操作

字符串操作

复制字符串(strcpy / strcnpy / sprintf )

1. char * strcpy ( char * destination, const char * source );

最常用,但不安全。

要保证  1. destination有足够的空间; 2. source和destination指向的空间没有overlap。

2. int sprintf ( char * str, const char * format, ... );

用于字符串拷贝时,可视为 sprintf(dest, "%s", src);

要保证dest有足够的内存存放src。

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

比strcpy,多了长度的控制。从source拷贝num个字符到destination。如source里不够num字符会补充0。如:

char buf[1024] = {0};
char str[16] = "hello";
strncpy(buf, sizefo(buf), str);

一行代码执行时是往buf写了sizeof(buf) = 1024个字节,而不是strlen(str) + 1 = 6个字符。         

调用strncpy(dest, n, str)时,函数首先将字符从源缓冲区str逐个复制到目标缓冲区dest,直到拷贝了n碰上\0。

        紧接着,strncpy函数会往buf填充\0字符直到写满n个字符。

posted @ 2020-07-30 14:27  lunanana  阅读(114)  评论(0编辑  收藏  举报