logo

Fonctions strdup() et strndup() en C/C++

Le strdup() et strndup() les fonctions sont utilisées pour dupliquer une chaîne.
strdup() :
Syntaxe : char *strdup(const char *s);
Cette fonction renvoie un pointeur vers une chaîne d'octets terminée par un caractère nul, qui est un double de la chaîne pointée par s . La mémoire obtenue est réalisée dynamiquement à l'aide de malloc et peut donc être libérée à l'aide de free() .
Il renvoie un pointeur vers la chaîne dupliquée s .
Vous trouverez ci-dessous l'implémentation C pour montrer l'utilisation de la fonction strdup() en C :

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;> }>



>

>

Sortir:

couches de modèle osi
GeeksForGeeks>

strndup() :
syntaxe: char *strndup(const char *s, size_t n);
Cette fonction est similaire à strdup(), mais copie au maximum n octets.
Note : Si s est plus long que n, alors seuls n octets sont copiés et un NULL («   ») est ajouté à la fin.
Vous trouverez ci-dessous l'implémentation C pour montrer l'utilisation de la fonction strndup() en C :

C




// 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;> }>

>

>

Sortir:

Geeks>

Voyons les différences sous forme de tableau - :

strdup() strndup()
1. Il est utilisé pour renvoyer un pointeur vers une chaîne d'octets terminée par un caractère nul, Il est utilisé pour renvoyer un pointeur vers une chaîne d'octets terminée par un caractère nul
2. Sa syntaxe est - :
char * strdup( const char *str1 );

Sa syntaxe est - :

liste vide java

char *strndup( const char *str, size_t size);

3. Il est défini dans En tête de fichier Il est défini dans En tête de fichier
4. Il suffit d'un seul paramètre pointant vers la chaîne d'octets terminée par un caractère nul pour dupliquer

Il faut deux paramètres qui sont - :
1.pointeur vers la chaîne d'octets terminée par un caractère nul à dupliquer

2. nombre maximum d'octets à copier depuis str

5. Sa valeur de retour est un pointeur vers la chaîne nouvellement allouée. Il renvoie un pointeur nul si une erreur s'est produite.

Référence: Homme Linux (7)