[C con Clase] Código para hacer un RFC
David Reza
l.fix3r.l en gmail.com
Vie Oct 10 05:24:35 CEST 2008
Hola a todos, un comáñero tiene un código para hacer un RFC, le ayudé a
hacerlo y no le veo ningún problema pero simplemente no funciona como nos
gustaría que fuera. Aquí les dejo el código para que lo chequen y si
encuentran algún error me lo puedan hacer saber. El código está en C, y el
problema es que poniendo mis datos, sólo me salen las primeras 2 letras del
RFC.
#include<stdio.h>
#include<string.h>
void FRFC(char *nombre, char *appaterno, char *apmaterno, char *dia, char
*mes, char *ano);
char FEsvocal(char *appaterno);
int main(void){
char nombre[11],appaterno[11],apmaterno[11],dia[2],mes[2],ano[4],*vocal;
printf("Nombre: ");
scanf("%s",nombre);
printf("Apellido paterno: ");
scanf("%s",appaterno);
printf("Apellido materno: ");
scanf("%s",apmaterno);
printf("Dia: ");
scanf("%s",dia);
printf("Mes: ");
scanf("%s",mes);
printf("Ano: ");
scanf("%s",ano);
FRFC(nombre, appaterno, apmaterno, dia, mes, ano);
scanf("%s", ano); /* Esto lo puse solamente para detener la ejecución
en la consola. No sé mucho de C y no sé cuál es el equivalente al
'cin.ignore()' de C++ */
return 0;
}
void FRFC(char *nombre, char *appaterno, char *apmaterno, char *dia, char
*mes, char *ano){
char RFC[10];
RFC[0] = appaterno[0];
RFC[1] = FEsvocal(appaterno);
RFC[2] = apmaterno[0]; /* Si aquí le pongo 'apmaterno[1]' sí me muestra
el caracter correspondiente, pero así como está no muestra nada */
RFC[3] = nombre[0];
RFC[4] = ano[2];
RFC[5] = ano[3];
RFC[6] = mes[0];
RFC[7] = mes[1];
RFC[8] = dia[0];
RFC[9] = dia[1];
printf("\nTu RFC es: %s", RFC);
/* Aquí mando a imprimir dentro de la función porque sinceramente no sé
cómo devolver todo el arreglo y así poder imprimirlo en 'main()'. Sé que
podría pasarle otro puntero a la función y modificar ese puntero y usarlo
desde 'main()' pero como mi amigo no ha visto ese tema pues no quiero
confundirlo */
}
char FEsvocal(char *appaterno){
char vocal;
int k;
for(k=1;k<=3;k++){
switch(appaterno[k]){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': return appaterno[k];
}
}
}
Gracias de antemano.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20081009/906a3dd5/attachment.html>
Más información sobre la lista de distribución Cconclase