logo

strdup()- und strndup()-Funktionen in C/C++

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:
1.Zeiger auf die nullterminierte Bytezeichenfolge, die dupliziert werden soll

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)