strcpy与strncpy区别
n代表可以指定字符个数进行赋值,当src字符串长度小于n,dst数组就用额外的’0’字节填充到n长度。
strcpy实现:
// 为了实现链式操作,将目的地址返回,strcopy()可作为其它函数的参数(实参)
strncpy实现:
char
当n长度大于strlen(dest)时,使用这个函数(与 strcpy 一样),尤其需要注意,不要出现 n>strlen(dst)的情况,如果 n>strlen(dst),那么会破坏dst后面的内存。所以,使用strncpy时,最好自动添加‘0’在结尾。
char
strcpy与memcpy区别
1.复制的内容不同:strcpy()只能复制字符串,而memcpy()可以复制任意内容,例如字符数组、整型、结构体、类等;
2.复制的方法不同:strcpy()不指定长度,它遇到被复制字符串结束符”0”才结束拷贝,所以容易溢出,memcpy()则是根据其第三个参数决定复制的长度;
3. 用途不同:通常在复制字符串时用strcpy(),而需要复制其他类型数据时则一般用memcpy();
memcpy实现:
//void*代表复制的数据可以是任意类型,之后进行类型间的强制转换