#include #define MAXWORDLENGTH 30 #define MAXSENTENCE 30 #define MAXDICTION 300 using namespace std; int getSentence(char sent[MAXSENTENCE][MAXWORDLENGTH]) { int length = 0; char userWord[MAXWORDLENGTH]; cout << "Enter a sentence: "; cin >> userWord; while ( strcmp(userWord,".") != 0 ) { strcpy(sent[length], userWord); length++; cin >> userWord; } return length; } void lookup(char key[MAXWORDLENGTH], char dictionKey[MAXDICTION][MAXWORDLENGTH], char dictionVal[MAXDICTION][MAXWORDLENGTH], int dictionSize, char val[MAXWORDLENGTH]) { strcpy(val,"???"); for (int i = 0; i < dictionSize; i++) { if ( strcmp(dictionKey[i],key) == 0 ) { strcpy(val,dictionVal[i]); break; } } } int translate(char sent[MAXSENTENCE][MAXWORDLENGTH], int sentLength, char dictionKey[MAXDICTION][MAXWORDLENGTH], char dictionVal[MAXDICTION][MAXWORDLENGTH], int dictionSize, char trans[MAXSENTENCE][MAXWORDLENGTH]) { for (int i = 0; i < sentLength; i ++) { lookup(sent[i],dictionKey,dictionVal,dictionSize,trans[i]); } return sentLength; } void display(char sent[MAXSENTENCE][MAXWORDLENGTH], int length) { for (int i = 0; i < length; i++) { cout << sent[i] << " "; } cout << endl; } int main() { char sent[MAXSENTENCE][MAXWORDLENGTH]; int sentLength; char trans[MAXSENTENCE][MAXWORDLENGTH]; int transLength; char dictionKey[MAXDICTION][MAXWORDLENGTH] = { "dog", "eaten", "has", "homework", "my" }; char dictionVal[MAXDICTION][MAXWORDLENGTH] = { "Hund", "gefressen", "hat", "Hausaufgaben", "meine" }; int dictionSize = 5; sentLength = getSentence(sent); transLength = translate(sent,sentLength, dictionKey,dictionVal,dictionSize, trans); display(trans,transLength); }