Cadenas y apuntadores Programacin Variables de tipo char
Cadenas y apuntadores Programación
Variables de tipo char Las variables de tipo char ocupan un byte. Los valores posibles son de -128 a 127. Las constantes de tipo char pueden especificarse utilizando un carácter o una secuencia de escape encerrada entre apóstrofos. ‘a’, ‘ 5’, ‘n’ Pueden mezclarse con variables enteras. char x, y; int a, b; x = 45; y = ‘a’; a = 2*x; b = 3*x – y;
Lectura de caracteres scanf (stdio. h) utilizando el formato %c. requiere presionar ENTER getch (conio. h) no requiere de ENTER. getchar (stdio. h) requiere presionar ENTER #include <stdio. h> #include <conio. h> printf("n"); main(){ printf("ningrese otro caracter: "); char p 1, p 2, p 3=65; scanf("%c", &p 2); printf("ningrese un caracter: "); printf("%c", p 2); p 1 = getchar(); printf("ningrese otro caracter: "); putchar(p 1); p 2 = getch(); printf("n"); printf("caracter leido: %c", p 2); printf("nel caracteer p 3 es: "); getch(); putchar(p 3); }
Uso de fflush Se requiere borrar el buffer para leer correctamente #include <stdio. h> #include <conio. h> printf("ningrese otro caracter: "); main(){ scanf("%c", &p 2); char p 1, p 2, p 3=65; printf("%c", p 2); printf("ningrese un caracter: "); printf("ningrese otro caracter: "); p 1 = getchar(); fflush(stdin); putchar(p 1); p 2 = getch(); printf("n"); fflush(stdin); printf("caracter leido: %c", p 2); printf("nel caracteer p 3 es: "); getch(); putchar(p 3); printf("n"); }
Funciones básicas de ctype. h Función Significado isdigit(c) Regresa un 1 si el argumento c es un dígito, sino regresa 0. isalpha(c) Regresa un 1 si el argumento c es una letra, sino regresa 0. islower(c) Regresa un 1 si el argumento c es una letra minúscula, sino regresa 0. isupper(c) Regresa un 1 si el argumento c es una letra mayúscula, sino regresa 0. tolower(c) Regresa el carácter c convertido a minúscula. toupper(c) Regresa el carácter c convertido a mayúscula.
ejemplo #include <stdio. h> #include <conio. h> #include <ctype. h> main(){ char c 1, c 2, c 3, c 4; printf("tecle un caracter: "); c 1 = getch(); fflush(stdin); if(isdigit(c 1)) printf("%c es un digiton", c 1); else printf("%c NO es un digiton", c 1); printf("tecle un caracter: "); c 2 = getch(); fflush(stdin); if(isalpha(c 2)) printf("%c es una letran", c 2); else printf("%c NO es una letran", c 2); printf("tecle un caracter: "); c 3 = getch(); fflush(stdin); if(isupper(c 3)){ printf("%c es una letra mayusculan", c 3); printf("La minuscula de %c es %cnn", c 3, tolower(c 3)); } if(islower(c 3)){ printf("%c es una letra minusculan", c 2); printf("La mayuscula de %c es %cnn", c 3, toupper(c 3)); } getch(); }
Ejemplo de Conversión #include <stdio. h> #include <conio. h> #include <ctype. h> char a. Mayuscula(char c){ if(isalpha(c)) return toupper(c); switch(c){ case 'á': return 'Á'; case 'é': return 'É'; case 'í': return 'Í'; case 'ó': return 'Ó'; case 'ú': return 'Ú'; case 'ñ': return 'Ñ'; } } main(){ printf("%cn", a. Mayuscula(‘á')); getch(); }
Función issymbol #include <stdio. h> #include <conio. h> char issymbol(char c){ if(c<=47||c>=58&&c<=64||c>=91&&c<=96||c>=123) return 1; return 0; } main(){ printf("%d printf("%d getch(); } n", issymbol('2')); n", issymbol('a')); n", issymbol('A')); n", issymbol('(')); n", issymbol('? ')); n", issymbol('[')); n", issymbol('{'));
tarea Escriba una función que regrese 1 si el parámetro de tipo char es letra o número.
Quiz Que valores se imprimen en la pantalla con las siguientes sentencias: El código ASCII de ‘A’ es 65. char a = ‘E’; printf(“%c es una letra, su codigo ASCII es %dn”, a, a); printf(“%c %d”, tolower(a), isdigit(a));
Cadenas Una cadena de caracteres es un arreglo unidimensional de caracteres que termina con el carácter . El nombre de la variable de cadena se utiliza como un apuntador al inicio del arreglo de caracteres. Las constantes de tipo cadena se encierran entre comillas dobles. Ejemplos: char a[10] = “hola”; char m[25] = “”; char *x = “San Luis Potosí”;
Declaración e inicialización #include <stdio. h> #include <conio. h> main(){ // declara una cadena de longitud 20 como máximo. char a[20]; // declara una cadena de longitud 20 como máximo. // el contenido es la cadena “hola”, x[4] = ‘ ’. char x[10] = "hola"; // declara una cadena de 4 caracteres mas char *m = "que tal"; // declara una cadena con longitud variable char s[] = {'B', 'i', 'e', 'n', 'v', 'e', 'n', 'i', 'd', 'o', '