Función strdup en el idioma C

Función strdup en el idioma C
Memorizar y dominar las funciones que tratan con 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 especificar 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.

En este artículo de Sugerencia de Linux, aprenderá cómo usar la función strdup () para duplicar las cadenas. Veremos la sintaxis y la descripción teórica de llamar al método, sus argumentos de entrada y salida, y el tipo de datos aceptados en cada caso.

Luego, aplicamos lo que aprendimos en los ejemplos prácticos utilizando fragmentos e imágenes de código para mostrarle cómo usar la función strdup () para duplicar las cadenas.

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

char *strdup (const char *str);

Descripción de la función strdup () en el lenguaje C

La función strdup () duplica una cadena. Esta función duplica la cadena que apunta el puntero STR que se pasa 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 cuerdas, pero cada una de las cuales tiene un modo de llamada y funcionalidad diferentes para satisfacer las necesidades particulares del programador.

Como todas las funciones de procesamiento de cadenas, strdup () se define en la "cadena.encabezado. Para usarlo, debe incluirlo en su código de la siguiente manera:

#incluir

Cómo duplicar una cadena usando la función strdup () en el idioma 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 "originales" y "duplicados" en la consola de comando.

Para hacer esto, incluimos el "stdio.h "y" cadena.H ”encabezados en nuestro código y definir los dos punteros de cadena dentro de la función Main (). El primero se llama "original" que contiene el "Ejemplo para la función strdup ()" expresión. El segundo puntero se llama "duplicado" que contiene la ubicación donde la función strdup () almacena la copia de la cadena original.

Una vez que se definen las cadenas que usa el programa, llamamos a la función strdup () y pasamos 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 "originales" y "duplicados" en la consola de comando. Aquí está el código para este ejemplo:

#incluir
#incluir
vacío principal ()

char* original = "Ejemplo de la función strdup ()";
char* duplicado;
duplicado = strdup (original);
printf ("original:%s \ n", original);
printf ("duplicado:%s \ n", duplicado);

Como vemos en la siguiente figura, strdup () duplica la cadena original duplicando literalmente su contenido.

Diferencias entre las funciones strdup () y strndup ()

La familia strxxdupx () consiste en 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, size_t n);

Las funciones en esta familia están diseñadas para duplicar las cuerdas, pero cada una de ellas funciona de una manera diferente.

Como hemos visto, la función strdup () duplica completamente la cadena que se envía 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. Puede hacerlo de manera total o parcialmente.

A diferencia de strdup (), la función strndup () toma dos argumentos de entrada. El primer argumento es "STR", que es el puntero de la cadena a ser duplicada. El segundo argumento es "n", que es una variable de tipo size_t que especifica el número de caracteres que copia.

En el siguiente ejemplo, vemos el uso de la función strndup () donde solo 8 de los caracteres de la cadena original están duplicados.

#incluir
#incluir
vacío principal ()

char* original = "Ejemplo de la función strdup ()";
char* duplicado;
size_t n = 8;
duplicado = strndup (original, n);
printf ("original:%s \ n", original);
printf ("duplicado:%s \ n", duplicado);

Como se ve en la siguiente figura, la función strndup () duplica un número "n" caracteres de la cadena original.

Errores que pueden ser generados por la función strdup ()

El error que puede generar esta función es que "el sistema no tiene suficiente memoria para ejecutar el proceso", que es poco probable en los sistemas actuales.

Este error se define en el "Errno.El encabezado H ”y su código se pueden consultar a través de la variable Global Errno. Su definición es enomem.

Conclusión

En este artículo de Linux Sugerencia, explicamos cómo usar la función strdup () que pertenece a la familia de funciones de procesamiento de cadenas que se define en la cadena.h encabezado.

Observamos la sintaxis de esta función y proporcionamos una explicación teórica sobre su uso, sus 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 utilizan esta función y cómo se llama la función.

También le mostramos cómo usar la función strndup (), otra función de la familia strxxdupx (), para que conozca las diferentes posibilidades que el lenguaje C ofrece para duplicar las cuerdas.