| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
lennox000
Registrado: 01 May 2011 Mensajes: 11
| Publicado: 11/05/2011 3:58 pm | | | Título: Limite de letras y numeros |
| Buenas señores programadores, Quisiera molestarlos con una consulta, estoy tratando de hacer un programa en donde yo ingrese limites de letras y numeros, por ejemplo que al inicio me pida los limites de letras: a-t, en donde la a sea el inicio y en final de limite seria t (a,b,c,d,e... ...r,s,t) y lo mismo para los numeros: 2-8 en donde 2 es el inicio y el final 8 (2,3,... ...7, y cuando yo ingrese una palabra por ejemplo zapato294, me diga que z y 9 no estan permitidos.
No se como hacerlo y me gustaria que me hecharan una mano. Buena tarde |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7530 Ubicación: Mexico
| Publicado: 11/05/2011 4:45 pm | | | Título: |
| Para los digitos no debes tener problemas, basta con almacenar los limites superior e inferior en variables, luego las utilizas para verificar que el caracter siendo procesado este en el rango permitido. Por ejemplo:
| Código: | #define NUM_CHARS 128
/* ... */
char linea[NUM_CHARS]; char digito_menor; char digito_mayor;
/* Obtienes la linea y los digitos menor y mayor */
/* Para comprobar si los caracteres son digitos validos */ for (i = 0; linea[i] != '\0'; i++) if (linea[i] < digito_menor || linea[i] > digito_mayor) printf("\'%c\' no esta permitido!\n", linea[i]); |
El proceso con los caracteres alfabeticos es similar (el estandar no garantiza que sean consecutivos pero usualmente lo son).
Seria mas o menos asi:
| Código: | #include <stdio.h> #include <stdlib.h> #include <ctype.h>
#define NUM_CHARS 128
int main(void) { char linea[NUM_CHARS]; char alf_menor; char alf_mayor; char dig_menor; char dig_mayor; int i; char ch; /* Obtienes la linea y los limites para los rangos */ /* Para comprobar si los caracteres son validos */ for (i = 0; (ch = linea[i]) != '\0'; i++) if (isalpha(ch)){ if (ch < alf_menor || ch > alf_mayor) printf("\'%c\' no esta permitido!\n", ch); }else if (isdigit(ch)) if (ch < dig_menor || ch > dig_mayor) printf("\'%c\' no esta permitido!\n", ch); return EXIT_SUCCESS; } |
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | lennox000
Registrado: 01 May 2011 Mensajes: 11
| Publicado: 11/05/2011 5:57 pm | | | Título: |
| Muchas Gracias, de verdad te agradezco bastante tu ayuda, fijate que estoy haciendo un analizador lexico, me gusta programar en c, pero no se mucho. Voy haciendolo poco a poco.
Saludos |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |