Matrices de caracteres
Una constante de la secuencia, por ejemplo
"I am a string"
es un arsenal de caracteres. Es representado internamente en C por los caracteres de ASCII en la secuencia, es decir, “I”, el espacio en blanco, “a”, “m”,… o la secuencia antedicha, y terminado por “especial \ 0” así que programas del carácter nulo pueden encontrar el extremo de la secuencia.
Las constantes de la secuencia son de uso frecuente en la fabricación de la salida del printf que usa inteligible del código:
printf("Hello, world\n");
printf("The value of a is: %f\n", a);
Las constantes de la secuencia se pueden asociar a variables. C proporciona el tipo de carácter variable, que puede contener un carácter (1 octeto) a la vez. Una cadena de caracteres se almacena en un arsenal del tipo de carácter, un carácter de ASCII por la localización.
Nunca olvidarte de que, puesto que las secuencias son terminadas convencionalmente por “\ 0” del carácter nulo, requerimos una localización adicional del almacenaje en el arsenal.
C no proporciona a ningún operador que manipule secuencias enteras inmediatamente. Las secuencias se manipulan vía indicadores o vía las rutinas especiales disponibles de la biblioteca estándar string.h. de la secuencia.
Usar indicadores del carácter es relativamente fácil puesto que el nombre de un arsenal es un justo un indicador a su primer elemento. Considerar el programa dado después:
#include<stdio.h>
void main()
{
char text_1[100], text_2[100], text_3[100];
char *ta, *tb;
int i;
/* set message to be an arrray */
/* of characters; initialize it */
/* to the constant string "..." */
/* let the compiler decide on */
/* its size by using [] */
char message[] = "Hello, I am a string; what are
you?";
printf("Original message: %s\n", message);
/* copy the message to text_1 */
i=0;
while ( (text_1[i] = message[i]) != '\0' )
i++;
printf("Text_1: %s\n", text_1);
/* use explicit pointer arithmetic */
ta=message;
tb=text_2;
while ( ( *tb++ = *ta++ ) != '\0' )
;
printf("Text_2: %s\n", text_2);
}
La salida del programa será como sigue:
Original message: Hello, I am a string; what are you?
Text_1: Hello, I am a string; what are you?
Text_2: Hello, I am a string; what are you? |
La biblioteca estándar de la “secuencia” contiene muchas funciones útiles para manipular las secuencias, que aprenderemos en la sección de la secuencia más adelante.
|