Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Validar que una variable tenga determinados caracteres

Estas en el tema de Validar que una variable tenga determinados caracteres en el foro de C/C++ en Foros del Web. Hola, cómo podría hacer para validar un código de usuario, el cual debe estar formado por 2 letras y 4 números (La letras deben ocupar ...
  #1 (permalink)  
Antiguo 13/06/2008, 15:21
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Validar que una variable tenga determinados caracteres

Hola, cómo podría hacer para validar un código de usuario, el cual debe estar formado por 2 letras y 4 números (La letras deben ocupar las dos primeros lugares). Ej: AT1478

char codigo[6];

scanf("%c",&codigo);

Y luego cómo lo valido?

Gracias
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #2 (permalink)  
Antiguo 13/06/2008, 15:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Validar que una variable tenga determinados caracteres

Te doy la misma respuesta que hace unos días a una pregunta muy similar de otro forero:
Se puede hacer utilizando expresiones regulares con las funciones regcomp() y regexec().
Puedes ver un ejemplo aquí: http://publib.boulder.ibm.com/infoce...zan5mst205.htm

En tu caso la expresion regular podría ser expresada así: "^[a-zA-Z]{2}[0-9]{4}$"

---

Otra opción es dividir la cadena en las los partes diferenciadas y utilizar la funcion strrspn() utilizando como segundo parámetro de la misma:
- "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ" para el primer trozo.
- "0123456789" para el segundo trozo.

Para ser válido, el retorno de la primera llamada debe ser 2 y el de la segunda llamada debe ser 4.

---

Otra opción es utilizar las funciones:
- isalpha() para cada uno de los dos primeros caracteres
- isdigit() para cada uno de los caracteres restantes

---

Seguro que hay más formas ...
__________________
Pop & Rock Bands
Pop Music Stars

Última edición por 00siete; 13/06/2008 a las 15:52
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:33.