Hola he programado el siguiente codigo, soy nuevo en el tema asi que posiblemente mi codigo sea ineficiente y con muchos errores xD
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
Código (cpp) [Seleccionar]
//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