Cómo convertir caracteres y validar dígitos en C
Clasificado en Matemáticas
Escrito el en
español con un tamaño de 2,56 KB
Programas fundamentales en lenguaje C
A continuación, presentamos dos ejemplos prácticos para la manipulación de caracteres y validación de datos utilizando el lenguaje C.
1. Conversión de Mayúsculas a Minúsculas
Este programa permite transformar caracteres entre sus formas mayúsculas y minúsculas mediante el uso de funciones personalizadas.
/* NOMBRE DEL PROGRAMA: Pasar de mayúsculas a minúsculas */
#include <stdio.h>
#include <conio.h>
void a_minuscula(char &);
void a_mayuscula(char &);
void main(void) {
char letra, repetir;
do {
clrscr();
do {
printf("\n Dame una letra:");
scanf("%c", &letra);
fflush(stdin);
} while((letra < 65 || letra > 90) && (letra < 97 || letra > 122));
a_mayuscula(letra);
printf("\n La letra es %c", letra);
do {
printf("\n Desea repetir(S/N):");
scanf("%c", &repetir);
fflush(stdin);
a_mayuscula(repetir);
} while (repetir != 'S' && repetir != 'N');
} while (repetir == 'S');
}
void a_minuscula(char &letra) {
if (letra >= 65 && letra <= 90) {
letra = letra + 32;
}
}
void a_mayuscula(char &letra) {
if (letra >= 97 && letra <= 122) {
letra = letra - 32;
}
}2. Validación de Dígitos (0-9)
Este programa verifica si un carácter ingresado por el usuario corresponde a un dígito numérico.
/* NOMBRE DEL PROGRAMA: Probar si un número está entre 0 y 9 */
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
char es_digito(char);
void main(void) {
char repetir, carac, es;
do {
clrscr();
printf("\nDime un carácter o un dígito cualquiera:");
scanf("%c", &carac);
fflush(stdin);
es = es_digito(carac);
if (es == 'S')
printf("\n Es un dígito entre 0 y 9");
else
printf("\n NO es un dígito entre 0 y 9");
do {
printf("\n Desea repetir(S/N)?: ");
scanf("%c", &repetir);
fflush(stdin);
repetir = toupper(repetir);
} while (repetir != 'S' && repetir != 'N');
} while(repetir == 'S');
}
char es_digito(char carac) {
char es;
if (carac >= 48 && carac <= 57) {
es = 'S';
} else {
es = 'N';
}
return (es);
}