Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Cadenas De Caracteres
1. Cadenas de caracteres en lenguaje C Alumno: Mauricio Huertas T. 23/11/2009 Programación II
2. Definición de cadenas de caracteres.- Una cadena de texto es un conjunto de caracteres, tales como “ABCDEFG - * $$ % %65” (letras, símbolos, números, etc.). En el lenguaje C soporta cadenas de texto utilizando un array (arreglos) de caracteres que contenga una secuencia seguidas por un carácter o null. Las cadenas de caracteres deben ser almacenadas en un array pero no todos los arrays contienen cadenas de caracteres. Ejemplo: Carácter nulo
3. Se deberán usar las funciones para manejo de cadenas y no tratar de manipular las cadenas en forma manual desmantelando y ensamblando cadenas: Declaración de una cadena de caracteres. No se puede asignar una cadena a un array del siguiente modo: Cadena = "ABCDEF" ; Se debe asignar una cadena a un array del siguiente modo: Cadena[6] = "ABCDEF" ; Cadena [6]=
4. Diferencia de cadena con una array de caracteres Es que la cadena de caracteres la longitud del array debe tener el tamaño de la longitud +1 para que se almacene el carácter nul o . Ejemplo: Cadena[4]=“ABCD”; Cadena[4]= El array de caracteres debe tener la longitud exacta de caracteres: Ejemplo: cadena[4]={“ABCDE”}; cadena[4]=
8. Función strncmp(). Está función compara léxicamente las cadenas de texto: #include <stdio.h> #include <string.h> voidmain() { char s1[4] = "Mira"; char s2[4] = "mira"; int i; printf("s1=%s", s1 ); printf("s2=%s", s2 ); i = strcmp( s1, s2 ); printf( "s1 es " ); if( i < 0 ) printf( "menor que" ); elseif( i > 0 ) printf( "mayor que" ); elseprintf( "igual a" ); printf( " s2" ); } Menor que cero -- si cadena1 es léxicamente menor que cadena2; Cero -- si cadena1 y cadena2 son léxicamente iguales; Mayor que cero – si cadena1 es léxicamente mayor que cadena2;
9. Función strncat() Añade una copia de la cadena apuntada por s2 (incluyendo el carácter nulo) al final de la cadena apuntada por s1. El carácter inicial de s2 sobrescribe el carácter nulo al final de s1. Ejemplo: #include <stdio.h> #include <string.h> voidmain() { char s1[11] = "Hola "; char s2[5] = “mundo"; printf( "s1=%s", s1 ); printf( "s2=%s", s2 ); strcat( s1, s2 ); printf( "s1=%s", s1 ); }
10. Métodos por teclado y escritura por pantalla Para ingresar una cadena de caracteres se utiliza la instrucción scanf(“%s”,&variable) se almacena la cadena ingresada hasta la longitud que se asigno. Para la impresión se utiliza printf(“%s”,variable) imprime todos los caracteres que tena asignado la variable: Ejemplo: #include <stdio.h> voidmain() { char s1[4]; printf("ingrese la cadena la longitud debe ser menor a 3 digitos"); scanf("%s",&s1); printf( "la cadena ingresada es = %s", s1 ); }