Cómo usar la función strncpy en c ++

Cómo usar la función strncpy en c ++
Hay muchas funciones en C ++ para copiar cadenas o caracteres de un lugar a otro, que son strcpy, strncpy y memcpy. Son distintos entre sí según sus funcionalidades. Este tutorial discutirá el strncpy () función en c++.

¿Cuál es la función strncpy () en c?++

La función strncpy () es una función C ++ incorporada que se utiliza para copiar una cantidad fija de caracteres de una cadena a otra. La función necesita tres parámetros: la cadena de destino que contendrá los caracteres, la cadena de origen que proporcionará los caracteres y el recuento de caracteres para copiar. Si la cadena de origen es menor que el número especificado de caracteres, la cadena de destino estará acolchada con caracteres nulos a la longitud restante.

El prototipo de una función strncpy () se da a continuación.

char *strncpy (char *dest, const char *src, size_t count);

¿Cuáles son los parámetros de c ++ strncpy ()

Todos los parámetros de strncpy () La función se explica a continuación.

  • Dest: Un puntero a la matriz de destino a la que ha sido el contenido
  • SRC: Un puntero a la matriz de origen desde la que es el contenido
  • contar: El mayor número de caracteres que podrían copiarse de la fuente al destino.

¿Cómo funciona la función strncpy () en c?++

strncpy () La función acepta tres argumentos: Dest, SRC, y contar. Verifica si el SRC la cadena está terminada en nulo, y en caso afirmativo, copia el número especificado de caracteres del SRC Cadena al desestimado cadena. Si el recuento es menor que la longitud del SRC cadena, los primeros caracteres de conteo se han transferido a desestimado cadena y no están terminados. Si el recuento excede la longitud de SRC, Todos los personajes de SRC se copian a desestimado, y se han incluido caracteres nulos de terminación adicional hasta que se escriban todos los caracteres del recuento.

El ejemplo dado ilustra el funcionamiento de la C++ strncpy () función.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

char src_str [] = "Estoy escribiendo un código para strncpy";
char dest_str [60];
strncpy (dest_str, src_str, strlen (src_str));
cout<regresar 0;

En este programa, utilizamos Archivo de encabezado porque incluye strncpy () función. Definimos dos cuerdas uno es src_STR y el otro es Dest_STR. strncpy () función que toma datos de cadena src_str y lo copia al Dest_STR. Aquí strlen (src_str) se usa para contar el número total de caracteres del cadena src_str.

El producción del programa se puede mostrar a continuación.

¿Cuáles son los problemas con el uso de strncpy () en c?++

  • Si no hay carácter nulo en la matriz de destino o la cadena no está terminada en NULL, nuestro programa o código puede encontrar problemas tarde o temprano. Una cadena no nula terminada en C ++ se ha convertido en un código de riesgo que puede romperse en cualquier momento durante la ejecución del programa. Puede dar como resultado una falla de segmentación en el programa. Como resultado, strncpy () no se asegura de que la cadena de destino siempre esté terminada en nulo, lo que lo convierte en un código de riesgo para el programa que estamos escribiendo.
  • Esta función no verifica el desbordamiento, por lo que si intentamos copiar la cadena de origen a un destino que es de menor tamaño que la fuente, obtenemos un error y un comportamiento indefinido.

Conclusión

Para copiar datos de una cadena a otra, usamos strncpy () en C ++, que es una función incorporada en archivo de cabecera. En este artículo, hemos discutido la sintaxis y el funcionamiento de la C++ strncpy función con un ejemplo. También destacamos algunos problemas debido a los cuales el strncpy la función puede hacer que nuestro código sea arriesgado.