strcpy和strdup都是C/C++语言字符串库中的方法,头文件是string.h。strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。strcpy是C语言标准库函数,实现字符串复制的功能。两者的用法基本相同,但是在使用strdup就很容易出现坑。
strcpy(s1,s2)功能:复制字符串 s2 到字符串 s1。
返回值:返回字符串 s1 的起始位置
说明:如果字符串 s1 的内存空间不够大,可能会造成缓冲溢出的情况,所以字符串 s1 的长度必须大于或等于字符串 s2 的长度。且复制完后其 s2 的内容将覆盖 s1 的内容。
功能:将字符串拷贝到新建的位置上。
返回值:返回一个指针,指向字符串分配的空间;如果分配空间失败,返回NULL
说明:strdup()是在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。