elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Ayuda en: 18 Junio 2022, 02:21 am
Hola amigos de la comunidad del hacker, soy nuevo aqui, pero conozco el foro ya desde hace un tiempo, vine a pedirles su ayuda con un proyecto, funciona bien, solo que me traduce las palabras de ingles a español, pero debe traducir una frase, ademas de que no reconoce cuando una frase ya ha sido añadida dos veces.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define N 50
  4.  
  5. typedef struct {
  6. char eng[N];
  7. char esp[N];
  8. int lleno;
  9. }traductor;
  10.  
  11. traductor trad[N];
  12.  
  13. void vacio();
  14. void anadir();
  15. void traducir();
  16. void tradu(int op);
  17. void cambio (char palabra[N]);
  18.  
  19. int main() {
  20. int op;
  21. char key;
  22.  
  23. vacio();
  24. void anadir();
  25.  
  26. do {
  27.  do {
  28.   printf ("Elige que deseas hacer:\n");
  29.      printf ("(1) Anadir palabras al traductor.\n");
  30.      printf ("(2) Buscar traduccion de la palabra en el traductor.\n");
  31.      scanf ("%i", &op);
  32.  } while (op < 1 || op > 2);
  33.  
  34. switch (op) {
  35.  case 1:
  36.   anadir();
  37.  break;
  38.  case 2:
  39.      traducir();
  40.  break;
  41. }
  42.  
  43. printf ("Introduce si deseas realizar otra operacion. (S/N)");
  44. scanf ("%c", &key);
  45. } while(key == 'S' || key == 's');
  46.  
  47. system ("pause");
  48. return 0;
  49. }
  50.  
  51. void vacio() {
  52. int i;
  53. for (i=0 ; i<N ; i++) {
  54.  trad[i].lleno = 0;
  55. }
  56. }
  57.  
  58. void anadir() {
  59. int i, aux;
  60.  
  61. aux = 0;
  62.  
  63. for (i=0 ; i<N && aux == 0 ; i++) {
  64.  if (trad[i].lleno == 0) {
  65.   printf ("Introduce la palabra en ingles.\n");
  66.   fflush(stdin);
  67.   fgets (trad[i].eng,N,stdin);
  68.   cambio (trad[i].eng);
  69.   printf ("Introduce la palabra en espanol.\n");
  70.   fflush(stdin);
  71.   fgets (trad[i].esp,N,stdin);
  72.   cambio (trad[i].esp);
  73.   trad[i].lleno = 1;
  74.   aux = 1;
  75.  }
  76. }
  77. }
  78.  
  79. void traducir() {
  80. int op;
  81.  
  82. do {
  83.   printf ("Elige que deseas hacer:\n");
  84.      printf ("(1) Traducir de Ingles a Espanol.\n");
  85.      printf ("(2) Traducir de Espanol a Ingles.\n");
  86.      scanf ("%i", &op);
  87.  } while (op < 1 || op > 2);
  88.  
  89. switch (op) {
  90.  case 1:
  91.   tradu(op);
  92.  break;
  93.  case 2:
  94.      tradu(op);
  95.  break;
  96. }
  97. }
  98.  
  99. void tradu(int op) {
  100. int i, j, temp;
  101. char aux[N];
  102.  
  103. temp = 0;
  104.  
  105. printf ("Introduce la palabra que desea buscar: \n");
  106. fflush(stdin);
  107. fgets (aux,N,stdin);
  108. cambio (aux);
  109. if (op == 1) {
  110.  for (i=0 ; i<N && temp==0 ; i++) {
  111.   j = strcmp (aux, trad[i].eng);
  112.   if (j == 0) {
  113.    printf ("La traduccion de %s es %s.\n", trad[i].eng, trad[i].esp);
  114.    temp = 1;
  115.   }
  116.  }
  117. }
  118. else {
  119.   for (i=0 ; i<N && temp==0 ; i++) {
  120.   j = strcmp (aux, trad[i].esp);
  121.   if (j == 0) {
  122.    printf ("La traduccion de %s es %s.\n", trad[i].esp, trad[i].eng);
  123.    temp = 1;
  124.   }
  125.  }
  126. }
  127. }
  128.  
  129. void cambio (char palabra[N]) {
  130. int i;
  131.  
  132. for (i=0 ; i<N ; i++) {
  133.  if (palabra[i] == '\n') {
  134.   palabra[i] = '\0';
  135.  }
  136. }
  137. }

MOD: El código debe ir entre etiquetas de Código GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines