Red de conocimiento informático - Computadora portátil - ¿Qué función de biblioteca en lenguaje C copia una cadena según un número determinado?

¿Qué función de biblioteca en lenguaje C copia una cadena según un número determinado?

1. Prototipo: char * strncpy (char * dest, char * src, size_t n);

Función: Copia hasta n caracteres en la cadena src a la matriz de caracteres dest (n caracteres se redondean Solo entonces comienza a copiar), devolviendo un puntero al destino.

Descripción: si n > longitud de la cadena de destino, el desbordamiento del espacio de la pila de destino genera una excepción de bloqueo.

(1) longitud de la cadena src < = longitud de la cadena de destino, (donde la longitud de la cadena incluye el carácter nulo al final de la cadena) si n=(0, longitud de la cadena src), entonces src El primero Se copian n caracteres al destino. Sin embargo, debido a que no hay ningún carácter nulo, se producirá una excepción de desbordamiento de pila al acceder directamente a la cadena de destino. Si n = longitud de la cadena src, es consistente con strcpy. Si n = longitud de la cadena de destino, la cadena de origen se almacena en [0, longitud de la cadena de origen] y NULL se almacena en (longitud de la cadena de origen, longitud de la cadena de destino).

(2)src string length>; Longitud de la cadena de destino Si n = longitud de la cadena de destino, la cadena de destino no tiene caracteres nulos, lo que dará como resultado una salida confusa. Si no se considera la integridad de la copia de la cadena src, el último carácter de dest se puede establecer en NULL.

En resumen, en general, cuando se usa strncpy, se recomienda establecer n en la longitud de la cadena de destino (a menos que se copien varias cadenas src en la matriz de destino, comenzando desde el final de dest inverso). ). Después de copiar, por razones de seguridad, establezca el último carácter de la cadena de destino en NULL para evitar el problema de salida confusa en el segundo caso. Por supuesto, ya sea strcpy o strncpy, lo más importante es asegurarse de que la longitud de la cadena src

2. Generales:

#¿Incluir? & ltstdio.h & gt

#¿Contiene? & ltstring.h & gt

#¿Contiene? & ltstdlib.h & gt

main()

{

¿Carácter? a[]= "uewreuwiurweu";

¿Carácter? b[100];

strncpy(b, a, 1); //Copia el primer carácter de A a b.

b[1]= '\0';

Vender(b);

Sistema("pausa");

}