Tarea III
1.-¿Qué diferencia existe entre cadena de texto y arreglo de caracteres?
Una cadena de texto es una secuencia de caracteres. Ejemplos de
cadenas son:
" Don Quijote de la Mancha"
"Hola Mundo"
"Apolo Apolo 13"
En C++ una cadena se considera como un array de caracteres terminado
con el carácter nulo '\0'.
Arreglo: Colección ordenada de elementos de un mismo tipo. Ordenada significa que cada elemento tiene una ubicación determinada dentro del arreglo y debemos conocerla para accederlo.
Un arreglo en C++ es un conjunto de datos que se alamacenan en memoria de manera contigua con el mismo nombre. Para difenciar los elementos de un arreglo se utilizan índices detrás del nombre del arreglo y encerrados por []. El elemento 5° (quinto) de un arreglo, es representado por el índice [4], ya que los índices comienzan en 0. Esto significa que un arreglo de 10 elementos tendría los índices del 0 al 9: [0...9]
La principal diferencia entre una cadena y un arreglo de caracteres, es que
una cadena siempre termina con el carácter nulo '\0' y los arreglos de
caracteres caracteres nono.
Como conclusión, p q , podemos decir que
- Todas las cadenas de texto son arreglos de caracteres,
- pero, no todos los arreglos de caracteres almacenan cadenas.
Ejemplo de un arreglo int arregloEntero[10]; //Declaracion de un arreglo de 10 elementos, sin inicializar. arregloEntero[5] = 45; //Asignacion de 45 al elemento 6 del arreglo. double arrPuntoFlotante[3] = {1.1,1.2,1.3}; //Declaracion y asignacion en un arreglo de 3 elementos double. int a[4], b[5]; //Declaracion de dos arreglos enteros, de 4 y 5 elementos.
2.- ¿Cuál es la declaración de una cadena de texto?
Una cadena en C++ es un conjunto de caracteres, o valores de tipo char, terminados con el carácter nulo, es decir el valor numérico 0. Internamente, en el ordenador, se almacenan en posiciones consecutivas de memoria. Este tipo de estructuras recibe un tratamiento muy especial, ya que es de gran utilidad y su uso es continuo.
La manera de definir una cadena es la siguiente:
char <identificador> [<longitud máxima>];
Cuando se declara una cadena hay que tener en cuenta que tendremos que reservar una posición para almacenar el carácter nulo terminador, de modo que si queremos almacenar la cadena "HOLA", tendremos que declarar la cadena como:
char Saludo[5];
Las cuatro primeras posiciones se usan para almacenar los caracteres "HOLA" y la posición extra, para el carácter nulo.
También nos será posible hacer referencia a cada uno de los caracteres individuales que componen la cadena, simplemente indicando la posición. Por ejemplo el tercer carácter de nuestra cadena de ejemplo será la 'L', podemos hacer referencia a él como Saludo[2].
Es muy importante tener presente que en C++, los índices tomarán valores empezando siempre en cero, así el primer carácter de nuestra cadena sería Saludo[0], que es la letra 'H'.
En un programa C++, una cadena puede almacenar informaciones en forma de texto, como nombres de personas, mensajes de error, números de teléfono, etc.
La asignación directa sólo está permitida cuando se hace junto con la declaración.
El siguiente ejemplo producirá un error en el compilador, ya que una cadena definida de este modo se considera una constante, como veremos en el capítulo de "arrays" o arreglos.
La manera correcta de asignar una cadena es:
char Saludo[5];
Saludo = "HOLA"
char Saludo[5];
Saludo[0] = 'H';
Saludo[1] = 'O';
Saludo[2] = 'L';
Saludo[3] = 'A';
Saludo[4] = 0;
3.- ¿Cómo se realiza la lectura de cadenas de texto?
C++ dispone de funciones específicas que en unión con cin, permite la
cin.getline: cadena × tamaño × carácter ? void iostream.h
p p q p
lectura correcta de datos tipo cadena.
Sirve para leer una línea completa incluyendo espacios en blanco.
- cadena: nombre de la variable donde queremos guardar la cadena.
- tamaño: nº máximo de caracteres que se leerán. El tamaño deber como mucho
la longitud que aparece en la declaración de la cadena.
-- carácter:: se leerán caracteres hasta que se encuentre el se leerán caracteres hasta que se encuentre el carácter carácter aquí aquí
especificado. Si no se pone, el compilador supone que es '\n'.
Sirve para leer un carácter del flujo de entrada. Esta función cin.get(letra) lee un
cin.get : char ? bool iostream.h
carácter y lo guarda en letra. Devuelve 0 si el carácter leído es final de archivo. En
otro caso devuelve 1.
las funciones para la lectura de cadenas.
gets : cadena ? void stdio.h
Console stdio.h
Sirve para leer una línea desde el archivo de entrada. Lee hasta que
encuentra un salto de línea. Se llama a ésta función con el nombre de la
variable donde queremos guardar la cadena leída.
Sirve para leer un carácter del flujo de entrada sin que aparezca en pantalla.
getch : void ? int conio.h
llama sin argumentos y devuelve un entero
getchar : void ? int stdio.h
Sirve para leer el siguiente carácter del flujo de entrada. Se la llama sin
argumentos y devuelve un entero.
void main()
{
Ejemplo:
{
char letra ;
bool seguir = true;
while (seguir)
{
letra = getchar();
if (letra == '\n')
{
cout << "fin de línea";
cout << fin de línea ;
seguir = false;
}
else
cout << letra;
}
getch();
}
Las funciones getch y getchar
están especializadas en la
captura de un solo carácter.
La diferencia es que getchar
lee un carácter y lo imprime en
pantalla. Sin embargo getch, lo
lee pero no lo imprime en
pantalla.
Se utilizan para:
- lectura de un solo carácter
- retener pantallas.
C++ C++ dispone de la biblioteca de cadena string h Dicha biblioteca contiene dispone de la biblioteca de cadena string.h. Dicha biblioteca contiene
funciones de manipulación de cadenas.
Blibliografia:
http://gpd.sip.ucm.es/yolanda/LP2/Cadenas.pdf
http://www.alipso.com/monografias/2266_arreglosestados/
http://c.conclase.net/curso/?cap=008
http://codigomaldito.blogspot.mx/2005/11/arreglo-de-caracteres.html
No hay comentarios:
Publicar un comentario