2. CADENA
Una cadena se considera como un array unidimensional de
tipo char, es un tipo de dato compuesto, terminado por un
carácter nulo ('0'), NULL .
Cadenas es un arreglo de caracteres que:
Puede incluir letras, dígitos, etc.
Tiene un puntero al primer elemento.
Cuyo valor de la cadena es la dirección de memoria del
primer elemento.
PARA MANIPULAR CADENAS SE UTILIZA LA CABECERA
< s t r i n g . h>
3. ¿CUÁL ES LA DIFERENCIA DE LA
CADENA CON UN ARRAY DE
CARACTERES ?
Una cadena de caracteres no es más que un arreglo de
valores de tipo char, pero con la diferencia de que el
último valor del arreglo tendrá el valor del CARACTER
NULO ‘0', indicando el fin del string.
a) Arreglo de caracteres
b) Cadena de caracteres CARACTER NULO
4. Ejemplo : " ABC "
• Cuando la cadena aparece dentro de un programa se
verá como si se almacenarán cuatro elementos: ‘A’,
’B’, ’C’ y ‘ 0 ‘
• Y esto demuestra que “ABC” es un arreglo de cuatro
elementos tipo char
El numero total de caracteres de
una cadena es siempre igual a la
longitud de la cadena + 1
5. Aplicando el operador * a un puntero a char se obtiene
el carácter que forma su contenido; es posible también
utilizar aritmética de direcciones con cadenas:
Ejemplo:
• * "ABC " es igual a ' A '
• * ( "ABC" + 1) es igual a ' B '
• * ("ABC" + 2 ) es igual a ' C '
• * ( "ABC" + 3 ) es igual a ' 0 '
6. 1. El tipo de dato, naturalmente, es char.
2. El nombre que deseamos dar a la cadena.
3. El operador postfijo [ ] contiene el tamaño máximo del
objeto.
Ejemplo:
• char texto [ 81]; / * una línea de caracteres de texto * /
• char orden [4 O] ; / * cadena utilizada para recibir una orden del
DECLARACIÓN DE VARIABLES DE
CADENA
char nombre_del_arreglo [numero_máximo_de_caracteres ]+
Se le suma 1 debido a
que se necesita el
caracter nulo al final
7. INICIALIZACIÓN DE VARIABLES DE
CADENA
Todos los tipos de arrays requieren una inicialización (iniciación) que consiste
en una lista de valores separados por comas y encerrados entre llaves.
Ej:
• char texto[81] = " Esto es una cadena.";
• char cadena[ ] = "¿Cuál es la longitud de esta cadena?";
• char cadena[ ] = "Hola";
• char cadena[ ] = {'H','o','l','a',0};
• char cadena[ ] = {'H','o','l','a','0'};
Durante la inicialización, se reserva automáticamente el número de bytes
necesarios para la cadena, esto es, el número de caracteres más uno.
Ej:
8. Ejemplo:
Las cadenas terminan con el carácter nulo. Así en el siguiente programa se
muestra que el carácter NULL ( ' 0 ')se añade a la cadena:
• #include <stdio.h>
• void main( )
• {
• char S[ ]= "ABCD";
• for (int i = 0; i < 5; i++)
• printf ( "S [%d] = %c n" , i , S [ i ] ) ;
• return 0;
• }
• Ejecución
• S [0] = A
• S[1] = B
• S[2] = C
• S [3] = D
• S [4] =
Comentario: Cuando el carácter NULL se imprime, no se escribe nada.
9. LECTURA Y ESCRITURA DE
CADENAS DE CARACTERES
Sin el &
¡cadena es una dirección!
LECTURA
scanf ("%s", cadena);
// gets (cadena);
ESCRITURA
printf ("%s", cadena);
// puts (cadena);
Diferencia entre scanf y gets:
•Scanf = lee 1 palabra
•Gets = lee cadena completa hasta 'n'
10. Ejemplo:
• #include <stdio.h>
• void main()
{
• char nombre [30] ; / * Define array de caracteres * /
• scanf ("%s", nombre) ; / * Leer la cadena * /
• printf ( "%s n" , nombre) ; /* Escribir la cadena nombre */
}