Arreglo unidimensional
Los arreglos (array) son un conjunto de valores que se relacionan por medio de un nombre en común. También se puede decir que son datos que se almacenan bajo el mismo nombre y para diferenciarlos se utiliza un índice.
En el lenguaje C++ un arreglo puede tener varias dimensiones, en esta ocasión hablaremos de los arreglos unidimensionales (una dimensión).
Un arreglo unidimensional es una lista de valores guardados bajo el mismo nombre y del mismo tipo. Cada valor dentro del arreglo se le conoce como elemento del arreglo.
Para declarar un arreglo unidimensional en C++ se utiliza la siguiente línea de código:
tipo_dato identificador[tamaño];
En “tipo de dato” introduciremos que tipo de dato queremos (int, char, float.. etc) , luego en “identificador” introducimos como llamaremos a nuestro arreglo para ubicarlo e identificarlo de manera rápida. Y entre los corchetes colocaremos el tamaño que le demos a nuestro array. Quedando de esta manera:
Ya que tenemos declarado nuestro arreglo necesitamos declarar cada uno de los elementos que lo conforman, para esto utilizamos lo siguiente:
Iniciamos con el nombre de nuestro arreglo en el apartado que dice arreglo, entre los corchetes colocaremos que parte del array utilizaremos, en C++ los valores se inician en 0, esto quiere decir que si nuestro arreglo es de tamaño 3, al hacer nuestro índice hay que tomar el 0 como valor inicial quedando [0] , [1] y [2] completando así nuestros 3 valores del tamaño antes mencionado.
En la parte “valor” asignaremos el valor que le daremos a ese elemento quedando de la siguiente manera:
Ejemplo: el siguiente programa carga el arreglo sqrs con los cuadrados de los números del 1 al 10 y luego los visualiza
La forma como se almacenan los valores en el arreglo es la siguiente:
sqrs[0] = 1*1
sqrs[1] = 2*2
sqrs[2] = 3*3
sqrs[3] = 4*4
sqrs[4] = 5*5
sqrs[5] = 6*6
sqrs[6] = 7*7
sqrs[7] = 8*8
sqrs[8] = 9*9
sqrs[9] = 10*10
y muestra en pantalla:
Arreglo de Cadena
Las cadenas de caracteres almacenan información tal como nombres de archivos, títulos de libros, nombres de empleados, y otras combinaciones de caracteres.
C++ guarda las cadenas de caracteres en un arreglo del tipo char que termina con un caracter nulo (NULL), por lo tanto, para declarar una cadena de caracteres simplemente se declara un arreglo de tipo char con los suficientes elementos como para contener los caracteres deseados. Por ejemplo, la siguiente declaración crea un nombre de variable de cadenas de caracteres “nombre_archivo” capaz de almacenar 13 caracteres (el caracter NULL es uno de estos 13): char nombre_archivo[13];
La diferencia principal entre las cadenas de caracteres y otros tipos de arreglos es cómo C++ indica el final del arreglo.
Este final se representa utilizando un caracter NULL (NULO), que C++ representa con el caracter especial “\0”. Cuando se asignan caracteres a la cadena, se debe poner el caracter null después del último elemento. Por ejemplo, el programa 35ALFABETO.CPP, asigna las letras de la A a la Z a la variable “alfabeto” utilizando un ciclo for:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| #include <iostream.h> main() { char alfabeto[27]; // 26 letras más NULL char letra; int i; for (letra= 'A' , i = 0; letra <= 'Z' ; letra++, i++) alfabeto[i] = letra; alfabeto[i] = NULL; cout << "Las letras son: " << alfabeto; } |
Como puede verse, en la línea 13, el programa asigna el caracter NULL a la cadena para indicar el último caracter de la misma.
Cuando el operador cout presenta la cadena, muestra los caracteres hasta llegar al nulo.
Veamos ahora el bucle for que aparece en la línea 10. Este bucle inicializa e incrementa dos variables. Cuando un bucle for inicializa o incrementa más de una variable se separan las operaciones utilizando una coma “,”.
En qué difiere ‘A’ de “A”
Al examinar los programas de C++ podemos ver caracteres contenidos dentro de apóstrofes (Ej: ‘A’) y caracteres dentro de comillas (“A”). Un caracter que está entre apóstrofes es un caracter constante. El compilador de C++ solamente asigna un byte de memoria para guardar un caracter constante. Sin embargo, un caracter encerrado entre comillas contiene una cadena constante.
El caracter y un caracter nulo que asigna el compilador (el compilador asigna automáticamente el caracter NULL a una cadena constante). Por lo tanto, el compilador asignará dos bytes para guardar esta cadena.
Cómo inicializar una cadena de caracteres
Para inicializar una cadena de caracteres en la declaración, simplemente se especifica la cadena deseada encerrándola entre comillas, ej: char titulo[40] = “Aprenda C++”;
Si el número de caracteres asignado a la cadena es menor que el tamaño del arreglo, la mayoría de los compiladores del C++ asignarán caracteres NULL al resto de la cadena.
Como ya se ha visto para los arreglos, si no se especifica el tamaño de la cadena, el compilador de C++ asignará la suficiente memoria como para contener las letras especificadas, más el caracter NULL. Ej: char titulo[] = “Aprenda C++”;
Cadenas y funciones
Como en el caso de cualquier arreglo, para trabajar con una cadena en una función, simplemente debemos especificar el tipo de arreglo (char). No se tiene que especificar el tamaño de la cadena. Por ejemplo, en el programa 36SHOW_CAD.CPP, se utiliza la función “mostrar_cadena” para mostrar por pantalla una cadena de caracteres:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| #include <iostream.h> void mostrar_cadena( char cadena[]) { cout << cadena; } main() { mostrar_cadena( "Cadena de caracteres: " ); mostrar_cadena( "Una cadena es un arreglo de tipo char." ); } |
Como ya sabemos, C++ utiliza el caracter NULL para indicar el final de una cadena. A continuación veremos el programa 37LONG_CAD.CPP, que contiene una función que busca el caracter NULL para determinar el número de caracteres que contiene una cadena.
Cuando examinemos más programas C++ encontraremos que muchas funciones buscan en esta forma el caracter NULL dentro de una cadena de caracteres.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| #include <iostream.h> int long_cadena( char cadena[]) { int i; for (i = 0; cadena[i] != '\0' ; i++); // Establece un ciclo // buscando el siguiente caracter return (i); // Longitud de la cadena } main() { char titulo[] = "Aprenda C++" ; char capitulo[] = "Arreglos y Cadenas" ; cout << "La cadena '" << titulo << "' contiene " << long_cadena(titulo) << " caracteres.\n" ; cout << "La cadena '" << capitulo << "' contiene " << long_cadena(capitulo) << " caracteres." ; } |
Comentarios
Publicar un comentario