Función Strdup() en lenguaje C

Memorizar y dominar las funciones que manejan cadenas es muy importante porque siempre las usamos en alguna parte del programa que desarrollamos. Las cadenas son una parte importante de la programación porque se utilizan para enviar mensajes al usuario, mostrar los resultados, leer los archivos o indicar su ruta, entre otras cosas. También son el método de entrada y salida que facilita la interacción entre el usuario y el programa. Este artículo de consejos de Linux le muestra cómo usar la función strdup() para duplicar las cadenas. Vemos la sintaxis y la descripción teórica de la invocación del método, sus argumentos de entrada y salida y el tipo de dato aceptado en cada caso. Luego, aplicaremos lo que aprendimos en los ejemplos prácticos con fragmentos de código e imágenes para mostrarle cómo usar la función strdup() para duplicar las cadenas.

Contenidos

Sintaxis de la función Strdup() en lenguaje C

char *strdup(const char *str);

Descripción de la función Strdup() en lenguaje C

La función strdup() duplica una cadena. Esta función duplica la cadena a la que apunta el puntero str pasado en el argumento de entrada y devuelve un puntero a la nueva cadena como resultado. Strdup() pertenece a la familia de funciones strXXdup(), todas las cuales están destinadas a duplicar las cadenas, pero cada una de ellas tiene un modo de llamada y una funcionalidad diferentes para satisfacer las necesidades particulares del programador. Como todas las funciones de procesamiento de cadenas, strdup() se define en el encabezado string.h. Para usarlo, debe incluirlo en su código de esta manera:

Cómo duplicar una cadena usando la función Strdup() en lenguaje C

En este ejemplo usamos la función strdup() para duplicar una cadena. Luego usamos la función printf() para mostrar los punteros de cadena «original» y «duplicado» en la consola de comandos. Para hacer esto, agregamos los encabezados «stdio.h» y «string.h» a nuestro código y definimos los dos punteros de cadena dentro de la función main(). El primero se llama «Original» y contiene la expresión «Ejemplo de la función strdup()». El segundo puntero se llama «duplicado» y contiene la ubicación donde la función strdup() almacena la copia de la cadena original. Una vez definidas las cadenas utilizadas por el programa, llamamos a la función strdup(), pasando el puntero a la cadena original como argumento de entrada y el puntero a la cadena duplicada como argumento de salida. Luego usamos la función print() para mostrar los punteros de cadena «original» y «duplicado» en la consola de comandos. Aquí está el código para este ejemplo: #include #incluir void main (){char* original =»ejemplo de la función strdup()»;char* duplicate;duplicate = strdup (original) ;printf («Original :%s\n», Original);printf («Duplicado :%s \n», duplicate);} Como vemos en la figura siguiente, strdup() duplica la cadena original al duplicar literalmente su contenido.

Diferencias entre las funciones Strndup() y Strndup()

La familia strXXdupX() consta de las siguientes funciones: char *strdup(const char *s);char *strndup(const char *s, size_t n);char *strdupa(const char *s);char *strndupa(const char *s, tamaño_tn); Todas las funciones de esta familia están diseñadas para duplicar las cadenas, pero cada una de ellas funciona de manera diferente. Como hemos visto, la función strdup() duplica completamente la cadena enviada en su argumento de entrada y devuelve una copia exacta en su argumento de salida. La función strndup() duplica la cadena de su argumento de entrada. Puedes hacer esto en su totalidad o en parte. A diferencia de strdup(), la función strndup() toma dos argumentos de entrada. El primer argumento es «str» ​​que es el puntero a la cadena a duplicar. El segundo argumento es «n», una variable de tipo size_t que especifica el número de caracteres a copiar. En el siguiente ejemplo, vemos el uso de la función strndup(), que duplica solo 8 de los caracteres de la cadena original. #incluir #incluir void main (){char* original =»ejemplo de la función strdup()»;char* duplicate;size_t n =8;duplicate = strndup (original, n); printf («Original :%s\n», Original);printf («Duplicar :%s\n», Duplicar);} Como se muestra en la siguiente figura, la función strndup() duplica un número «n» caracteres del cadena original.

Errores que puede generar la función Strdup()

El error que puede generar esta función es que «el sistema no tiene suficiente memoria para ejecutar el proceso», lo cual es poco probable en los sistemas actuales. Este error está definido en la cabecera errno.h y su código puede ser consultado a través de la variable global errno. Su definición es ENOMEM.

Diploma

En este artículo de consejos de Linux, explicamos cómo usar la función strdup(), que pertenece a la familia de funciones de manipulación de cadenas definidas en el encabezado string.h. Observamos la sintaxis de esta función y brindamos una explicación teórica de su uso, argumentos de entrada y salida. Para ayudarlo a comprender mejor cómo funciona, creamos un ejemplo práctico con código e imágenes donde puede ver cómo se crean los punteros y las cadenas que usa esta función y cómo se llama a la función. También le mostramos cómo usar la función strndup(), otra función de la familia strXXdupX(), para que se familiarice con las diversas formas que ofrece el lenguaje C para duplicar las cadenas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.