Tengo el siguiente problema, agradecería que le den una ojeada y me den algun consejo.
Tengo un archivo .txt con algunos registros con delimitadores
La estructura de mi archivo seria algo asi...
Código:
01;user01;user01@hotmail.com^02;user02;user02@gmail.com^03;user03;user03@yahoo.com^04;user04;user04@hotmail.com^05;user05;user05@facebook.com^
Citar
';' delimitador de campo
'^' delimitador de registro
Lo que tengo que hacer por ahora es mostrar todo el registro de aquellos que tengan cuentas de hotmail'^' delimitador de registro
Lo que e hecho hasta ahora es
Código
#include <stdio.h> #include <string.h> FILE *fd; void mostrarHotmails(void); int main(int argc, char *argv[]){ mostrarHotmails(); return 0; } void mostrarHotmails(void){ char c; } else{ char find[13] = "@hotmail.com"; // email que voy a buscar char email[13]; // para almacenar el dominio de emails de los usuarios (para luego comparar con find) char contacto[30]; // para almacenar todo el registro del contacto int contC = 0; //este contador me indica si ya llegue al campo de email if( c == ';'){ contC++; if(contC==2){ // Ya llegue al inicio del campo email. while(c!='^'){ int i=0; // indice para el arreglo contacto. contacto[i++] = c; if(c=='@'){ int ie = 0; // indice de email while(c!='^'){ email[ie++] = c; contacto[i++] = c; } email[ie] = '\0'; contacto[i] = '\0'; } } } } } if( c == '^'){ // Fin de registro, reinicio el contador de campos. contC = 0; } } // Fin de while } }
El resultado al ejecutar el programa es este...
Citar
@@hotmail.com
@@hotmail.com
@@hotmail.com
Como veran, me muestra dos veces el '@' y creo que es debido a que despues de guardar el caracter leido(linea 38) en la linea 44 lo vuelve a guardar.
Aun asi no entiendo porque solo me muestra los dominios y no toda la dirección de correo.
Me parece haber leido algo como "strcmp solo compara cadenas (no arrays de cadenas)", no se si por eso no me funcione el programa.
Gracias por su tiempo chicos