當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。