Las funciones strdup() y strndup() se utilizan para duplicar una string.
strdup() :
Sintaxis : char *strdup(const char *s);
Esta función devuelve un puntero a una string de bytes terminada en nulo, que es un duplicado de la string a la que apunta s . La memoria obtenida se realiza dinámicamente usando malloc y por lo tanto se puede liberar usando free() .
Devuelve un puntero a la string duplicada s .
A continuación se muestra la implementación de C para mostrar el uso de la función strdup() en C:
C
// 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; }
Producción:
GeeksForGeeks
strndup() :
sintaxis : char *strndup(const char *s, size_t n);
Esta función es similar a strdup(), pero copia como máximo n bytes.
Nota : si s es más largo que n, solo se copian n bytes y se agrega un NULL (‘\0’) al final.
A continuación se muestra la implementación de C para mostrar el uso de la función strndup() en C:
C
// 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; }
Producción:
Geeks
Veamos las diferencias en forma tabular -:
strdup() | strndup() | |
1. | Se utiliza para devolver un puntero a una string de bytes terminada en nulo, | Se utiliza para devolver un puntero a una string de bytes terminada en nulo |
2. | Su sintaxis es -: char * strdup( const char *str1 ); |
Su sintaxis es -: char *strndup( const char *str, size_t size ); |
3. | Se define en el archivo de encabezado <string.h> | Se define en el archivo de encabezado <string.h> |
4. | Solo se necesita un parámetro que sea un puntero a la string de bytes terminada en nulo para duplicar |
Se necesitan dos parámetros que son: 2. número máximo de bytes para copiar de str |
5. | Su valor de retorno es un puntero a la string recién asignada. | Devuelve un puntero nulo si se produce un error. |
Referencia: Linux man(7)
Este artículo es una contribución de MAZHAR IMAM KHAN . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA