/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Limite de letras y numeros

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
lennox000



Registrado: 01 May 2011
Mensajes: 11

MensajePublicado: 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,Cool 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

MensajePublicado: 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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com