Código
//Declaracion de Variables #include <stdio.h> #include <string.h> #include <iostream> #include <iomanip> #include <stdlib.h> #define N 50 //Prototipos de Funciones void vacio(); void anadir(); void MenuTraducir(); char Traducir (char); //Estructura para almacenar las palabras typedef struct { char eng[N]; char esp[N]; int lleno; }traductor; traductor trad[N]; //Main using namespace std; int main (){ char op; char op2; vacio(); do{ system("cls"); cout << setw (10) << "***** MENU *****" << endl << endl; cout << setw (10) << "a - Ingresar Palabra." << endl; cout << setw (10) << "b - Traducir Frase." << endl << endl; cout << "Ingrese una opcion: "; cin >> op; cout << endl; if (op == 'a'){ system("cls"); anadir(); }else{ if (op == 'b'){ system("cls"); MenuTraducir(); }else{ cout << "\n... ERROR, CARACTER NO VALIDO !! ...." << endl; } } cout << "\nRealizar otra operacion (S/N)? : "; cin >> op2; cout << endl; } while(op2 == 'S' || op2 == 's'); } //Funcion Vacio (Verifica si hay lugares vacios en la estructura para llenar) void vacio(){ for (int i=0; i < N; i++){ trad[i].lleno = 0; } } //Funcion Añadir (Añade palabras en la Estructura) void anadir (){ int salir = 0; for (int i=0; i < N && salir == 0; i++){ if (trad[i].lleno == 0){ cout << "Introduce la palabra en Ingles: "; fflush (stdin); cin.getline(trad[i].eng,80); cout << "\nIntroduce la palabra en Español: "; fflush (stdin); cin.getline(trad[i].esp,80); trad[i].lleno = 1; salir = 1; } } } //Funcion MenuTraducir (Muestra en Pantalla un Menu de Traduccion) void MenuTraducir(){ char x; char y; cout << "a - Traducir de Ingles - Español \n"; cout << "b - Traducir de Español - Ingles \n"; cout << "Elige una opcion: "; cin >> x; if (x == 'a'){ system("cls"); Traducir (x); }else{ if (x == 'b'){ system("cls"); Traducir (x); }else{ cout << "\n... ERROR, CARACTER NO VALIDO !! ...." << endl; } } } //Funcion Traducir (Traduce las frases Ingresadas por el Usuario) char Traducir (char opcion){ int x; int a; int temp=0; char b [N]; char * tok; if (opcion == 'a'){ x = 1; } cout << "Introduce la Frase que deseas Traducir: "; fflush (stdin); cin.getline(b,80); if (x == 1){ for (int i = 0; i < N && temp == 0; i++){ a = strcmp (b,trad[i].eng); if (a == 0){ cout << "\nLa traduccion es : " << trad[i].esp << endl << endl; temp = 1; } } }else{ for (int i = 0; i < N && temp == 0; i++){ a = strcmp (b,trad[i].esp); if (a == 0){ cout << "\nLa traduccion es : " << trad[i].eng << endl << endl; temp = 1; } } } }
Ahora lo que quiero hacer es una funcion que separe la frase por palabras y la traduzca pero no se como hacerla, por ejemplo:
frase en español: hola triste gato
quiero separar esa frase por palabra y luega mostrarla traducida en pantalla:
su frase traducida es: hello sad cat
he avanzado hasta este punto pero ahora me he quedado estancado de antemano gracias por su ayuda.
Mod: Los códigos deben ir en etiquetas GeSHi