📜  C / C++中的strdup()和strndup()函数

📅  最后修改于: 2021-05-30 16:58:06             🧑  作者: Mango

strdup()strndup()函数用于复制字符串。

strdup():
语法: char * strdup(const char * s);
此函数返回一个指向以null结尾的字节字符串的指针,该字符串是s指向的字符串的副本。获得的内存是使用malloc动态完成的,因此可以使用free()释放它。
它返回一个指向重复字符串s的指针。

下面是C实现,以显示strdup()函数在C中的使用:

// C program to demonstrate strdup()
#include
#include
  
int main()
{
    char source[] = "GeeksForGeeks";
  
    // A copy of source is created dynamically
    // and pointer to copy is returned.
    char* target = strdup(source); 
  
    printf("%s", target);
    return 0;
}

输出:

GeeksForGeeks

strndup():
语法char * strndup(const char * s,size_t n);
此函数类似于strdup(),但最多复制n个字节。

注意:如果s大于n,则仅复制n个字节,并在末尾添加NULL(“)。

下面是C实现,以显示strndup()函数在C中的使用:

// C program to demonstrate strndup()
#include
#include
  
int main()
{
    char source[] = "GeeksForGeeks";
  
    // 5 bytes of source are copied to a new memory
    // allocated dynamically and pointer to copied
    // memory is returned.
    char* target = strndup(source, 5);
  
    printf("%s", target);
    return 0;
}

输出:

Geeks

参考:Linux man(7)

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。