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