当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C/C++ strdup()、strndup()用法及代码示例


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

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

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


// C program to demonstrate strdup() 
#include<stdio.h> 
#include<string.h> 
  
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实现,以显示在C中使用strndup()函数:

// C program to demonstrate strndup() 
#include<stdio.h> 
#include<string.h> 
  
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)



相关用法


注:本文由纯净天空筛选整理自 strdup() and strndup() functions in C/C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。