El strdup() y cadena arriba() Las funciones se utilizan para duplicar una cadena.
strdup() :
Sintaxis: char *strdup(const char *s);
Esta función devuelve un puntero a una cadena de bytes terminada en nulo, que es un duplicado de la cadena 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 cadena 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> #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;> }> |
>
>
Producción:
GeeksForGeeks>
cadenaup() :
sintaxis: char *strndup(const char *s, size_t n);
Esta función es similar a strdup(), pero copia como máximo norte bytes.
Nota : Si s es más largo que n, entonces solo se copian n bytes y se agrega un NULL (' ') 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> #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;> }> |
>
números abc
>
Producción:
Geeks>
Veamos las diferencias en forma de tabla:
| strdup() | cadena arriba() | |
| 1. | Se utiliza para devolver un puntero a una cadena de bytes terminada en nulo, | Se utiliza para devolver un puntero a una cadena de bytes terminada en nulo. |
| 2. | Su sintaxis es -: char * strdup( const char *str1 ); | Su sintaxis es -: char *strndup( const char *str, size_t tamaño ); |
| 3. | Se define en archivo de cabecera | Se define en archivo de cabecera |
| 4. | Solo se necesita un parámetro que sea un puntero a la cadena de bytes terminada en nulo para duplicar | Se necesitan dos parámetros que son: 2. número máximo de bytes para copiar desde str |
| 5. | Su valor de retorno es un puntero a la cadena recién asignada. | Devuelve un puntero nulo si se produjo un error. |
Referencia: Hombre Linux(7)