首页 > 编程知识 正文

CC 中strcpy和strdup的区别及使用,防晒霜和隔离霜的区别与使用

时间:2023-05-05 15:33:28 阅读:258606 作者:3888

strcpy和strdup都是C/C++语言字符串库中的方法,头文件是string.h。strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。strcpy是C语言标准库函数,实现字符串复制的功能。两者的用法基本相同,但是在使用strdup就很容易出现坑。

strcpy(s1,s2)

功能:复制字符串 s2 到字符串 s1。
返回值:返回字符串 s1 的起始位置
说明:如果字符串 s1 的内存空间不够大,可能会造成缓冲溢出的情况,所以字符串 s1 的长度必须大于或等于字符串 s2 的长度。且复制完后其 s2 的内容将覆盖 s1 的内容。

#include <iostream>using namespace std;#include <cstring>int main(int argc, char* argv[]){char s1[20] = "hello";char s2[20] = "world";strcpy(s1 ,s2);cout << "strcpy(s1 ,s2) = " << s1 << endl; //输出为 s2 覆盖 s1 的内容return 0;} extern char *strdup(char *s);

功能:将字符串拷贝到新建的位置上。
返回值:返回一个指针,指向字符串分配的空间;如果分配空间失败,返回NULL
说明:strdup()是在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。

#include <iostream>using namespace std;#include <cstring>int main(int argc, char* argv[]){ char *t = “hello,world”; char *s = NULL; strcpy(t, s); cout << t << endl; return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。