字符串操作
复制字符串(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碰上 。
紧接着,strncpy函数会往buf填充 字符直到写满n个字符。