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 - : 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)