Strncpy también se conoce como función de copia de cadena. Es una función crucial que ofrece la biblioteca de cadenas C del lenguaje C. Strncpy es responsable de copiar una parte del contenido de una cadena en otro.
strncpy (string_a, string_b, 6) Copiará los primeros 6 caracteres de la cadena "String_B" a la cadena "String_a". String_a es la cadena a la que se copia el contenido de la cadena. Mientras que, String_B es el que se usará para obtener los primeros 6 caracteres de la cadena o la cadena de la que se copiarán los primeros 6 caracteres.
En caso de que la longitud de la cadena (desde la cual se copiará la parte de la cadena es menor que la cadena a la que se copiará la cadena), no copiará el valor completo de la cadena en la cadena de destino.
Sintaxis
La sintaxis para llamar strncpy () la función es:
En la sintaxis de arriba, "Char*Dest denota el destino al que se debe almacenar la cadena. El segundo parámetro "const char*src " es un estándar de C que especifica que el SRC es un puntero de caracteres, y en el tercer parámetro damos el tamaño a nuestra función para definir cuántos caracteres de la cadena copiar. El segundo parámetro no se puede modificar, por eso es constante. En esta función, almacenamos una cadena en nuestro parámetro de origen y la copiamos a cualquier destino representado como "Dest". Luego, dé el tamaño de nuestra variable de destino para que la función copie el mismo número de caracteres de nuestra cadena X. También podemos pasar nulo al parámetro de origen.
Ejemplo 1:
En este ejemplo, hemos declarado matrices de dos caracteres que son X e Y usando una matriz de tamaño 20 para "X" y 5 para "Y". Hemos almacenado cadena "Hello World" en nuestra variable X, que es nuestra variable fuente.
Después de declarar nuestras matrices de personajes, llamaremos a nuestro strncpy función para copiar nuestra cadena deseada al otro. En strncpy, Pasamos ambas matrices de destino, así como la matriz de origen, junto con el tamaño al que se copia la cadena.
En el código anterior, Y es nuestra cadena de caracteres de destino que discutimos anteriormente en la introducción. Esta función tiene tres parámetros: fuente, destino y longitud. Nuestro objetivo principal es copiar el valor de cadena que hemos asignado a nuestra matriz de origen "X" en nuestra matriz de destino "Y". Hemos dado la longitud de la variable y como el tercer parámetro para que copie el mismo número de caracteres que el de la longitud de y. Utilizando el printf () Declaración, imprimiremos la matriz copiada como salida donde %s se usa para imprimir la cadena del primer carácter al carácter nulo "\ 0" y "y" es la matriz resultante que debe imprimirse.
Nuestro código dará la siguiente salida una vez que se ejecute. Como podemos ver en nuestra salida, no ha copiado la frase completa porque le dimos la longitud de Y, que era solo 5, por lo que solo copió 5 caracteres de la cadena.
Ejemplo # 2:
En el siguiente ejemplo, primero inicializamos nuestras matrices de char llamado "A" y "B" a un tamaño fijo de 6. Después de la inicialización, pasamos nuestras matrices al strncpy función con la longitud de la cadena a la que se copiará.
Cuando strncpy copia el contenido de la fuente al destino, copia la cadena sin terminar el carácter nulo. Aquí, estamos especificando el tamaño del parámetro B. Toda la cadena se copiará a "B". Strncpy Nunca agrega un carácter \ 0 o nulo al final cuando el tamaño de la fuente es igual al tamaño del destino, por lo que tenemos que agregar manualmente el carácter \ 0 o nulo al final de nuestro personaje "B".
Si echamos un vistazo a nuestra salida, hemos copiado nuestro valor de cadena de un carácter a otro. Es por eso que tenemos nuestra salida como "genial".
Ejemplo # 3:
En la muestra de código a continuación, estamos utilizando el método para copiar la matriz a un valor especificado constante. Para hacerlo, primero declararemos nuestras dos variables de cadena usando una matriz de caracteres a una longitud especificada: "StringA" con una longitud de 20 y "StringB" con una longitud de tamaño 25. No hemos asignado ninguna cadena a nuestra matriz de origen usando el método strcpy. Insertaremos la cadena manualmente a la variable de origen "StringB". Luego, llame a nuestra función strncpy en la que el primer argumento es la variable de destino y la segunda es una variable de origen. Pero estamos asignando el valor a nuestra fuente también utilizando nuestro strncpy función.
En la línea 6, estamos haciendo una copia completa de nuestra cadena para asignar el valor a nuestra fuente. Después de haber asignado el valor, copiamos el valor StringB a STRINDA, que es nuestro destino. Le hemos dado una longitud de 7, lo que significa que solo copiará los primeros 7 caracteres de nuestra cadena fuente.
Nosotros usamos printf () declaración, uno para imprimir nuestro valor de origen y el otro para imprimir nuestro valor de destino. Como podemos ver en nuestra salida, el valor STRINA es de solo 7 caracteres porque mientras copiamos, le dimos una longitud de 7. Stringb imprimió la cadena completa porque usamos strcpy en lugar de strncpy función que copió toda la cadena.
Conclusión
En esta guía, hemos aprendido sobre la función strncpy () del idioma C. Puede explorar más sobre la función strncpy () de la biblioteca C utilizando múltiples ejemplos, puede obtener una comprensión aún mejor al implementarla. Nos permitió usar una sola cadena en un código varias veces en lugar de escribirla una y otra vez. Simplemente asignarlo a una variable reduce la complejidad de los valores repetidos.