我读到 strcpy
用于复制字符串,而 strdup
返回指向新字符串的指针以复制字符串。
您能否解释一下您更喜欢在哪些情况下使用strcpy
,以及您更喜欢在哪些情况下使用strdup
?
最佳答案
strcpy(ptr2, ptr1)
等价于while(*ptr2++ = *ptr1++)
strdup 相当于
ptr2 = malloc(strlen(ptr1)+1);
strcpy(ptr2,ptr1);
(memcpy version 可能更有效率)
因此,如果您希望将复制的字符串用于另一个函数(因为它是在堆部分创建的),您可以使用 strdup,否则 strcpy 就足够了。
关于c - strcpy 与 strdup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020380/