Der strdup() Und strndup() Funktionen werden verwendet, um eine Zeichenfolge zu duplizieren.
strdup() :
Syntax : char *strdup(const char *s);
Diese Funktion gibt einen Zeiger auf eine nullterminierte Bytezeichenfolge zurück, die ein Duplikat der Zeichenfolge ist, auf die von gezeigt wird S . Der erhaltene Speicher erfolgt dynamisch mit malloc und kann daher mit free() freigegeben werden.
Es gibt einen Zeiger auf die duplizierte Zeichenfolge zurück S .
Unten ist die C-Implementierung, um die Verwendung der Funktion strdup() in C zu zeigen:
String in int umwandeln
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;> }> |
Zufallszahlengenerator in c
>
>
Ausgabe:
GeeksForGeeks>
strndup() :
Syntax: char *strndup(const char *s, size_t n);
Diese Funktion ähnelt strdup(), kopiert jedoch höchstens N Bytes.
Notiz : Wenn s länger als n ist, werden nur n Bytes kopiert und am Ende ein NULL („ “) hinzugefügt.
Unten ist die C-Implementierung, um die Verwendung der Funktion strndup() in C zu zeigen:
C
Jahr, in dem der Computer erfunden wurde
// 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;> }> |
>
>
Ausgabe:
Geeks>
Sehen wir uns die Unterschiede in tabellarischer Form an:
| strdup() | strndup() | |
| 1. | Es wird verwendet, um einen Zeiger auf eine nullterminierte Bytefolge zurückzugeben. | Es wird verwendet, um einen Zeiger auf eine nullterminierte Bytefolge zurückzugeben |
| 2. | Seine Syntax ist -: char * strdup( const char *str1 ); | Seine Syntax ist -: char *strndup( const char *str, size_t size ); Wie groß ist mein Computerbildschirm? |
| 3. | Es ist definiert in Header-Datei | Es ist definiert in Header-Datei |
| 4. | Es ist nur ein Parameter erforderlich, der auf die zu duplizierende nullterminierte Bytezeichenfolge verweist | Es werden zwei Parameter benötigt: 2. Maximale Anzahl von Bytes, die aus str kopiert werden sollen |
| 5. | Sein Rückgabewert ist ein Zeiger auf die neu zugewiesene Zeichenfolge. | Es gibt einen Nullzeiger zurück, wenn ein Fehler aufgetreten ist. |
Referenz: Linux-Mann(7)