/* Diccionario traductor Inglés-Español * * dictra.c */
#include <stdio.h> #include <stdlib.h> #include <string.h>
#define MAXPAR 100 #define LONGPAL 40
int CrearDiccionario (char *); char *Traducir (char *, char *, int);
main() { char *palabras = (char *)malloc(MAXPAR * 2 * ((sizeof(char) * 40))); char palabra[LONGPAL], *p; int numpar = 0; if ((numpar = CrearDiccionario(palabras)) == 0) { printf("No hay ninguna palabra en el diccionario"); }
printf("Introducir palabra inglesa a traducir: "); fgets(palabra, LONGPAL, stdin); p = Traducir(palabra, palabras, numpar); if (p = NULL) { printf("Valor Nulo."); } else { printf("En español es: %s", *p); }
}
int CrearDiccionario(char *diccio) { int i; char cadena[LONGPAL]; printf("CREAR DICCIONARIO.\n"); printf("100 parejas máximo. 40 caracteres por palabra.\n\n\n"); for (i = 0; i < (MAXPAR); i++) { printf("Palabra %d (ingles): ", i+1); if ((fgets(cadena, LONGPAL, stdin)) == NULL) break; strcpy(diccio + (i * (LONGPAL * 2)), cadena); printf("Traducción (Español): "); if ((fgets(cadena, LONGPAL, stdin)) == NULL) break; strcpy(diccio + (i * ((LONGPAL * 2) + LONGPAL)), cadena); printf("\n"); }
printf("\n\n"); return i; }
char *Traducir (char *pal, char *pals, int numpar) { int i; for (i = 0; i < numpar; i++) { if (strcmp(pal, pals + (i * 80)) == 0) { return (pals + ((i * 80) + LONGPAL)); } } return NULL; }
|