#include #include #include #define MAXLINESIZE 80 #define NUMASCII 48 #define NUMLETTERS 58 #define FIRSTASCIICHAR 65 int size = 20; int nextindex = 0; char **strword; int getline(char *line) { char currchar; int i = 0; currchar = getchar(); if (currchar == EOF){ return(0); } else if(currchar == '\n'){ return(2); } while(currchar != EOF && currchar != '\n'){ line[i] = currchar; i++; currchar = getchar(); } return(1); } void printword (char *word){ int len = strlen(word); for(int i = 0; i < len; i++) { printf("%c", word[i]); } } void AddToBook(char *word){ if(nextindex == 0){ strword = malloc(size * sizeof(word)); } if(nextindex == size) { size *= 2; strword = realloc(strword, size * sizeof(word)); } strcpy(&strword[nextindex], word); nextindex++; } void PrintFromDictionary(int index){ printword(&strword[index]); } int main(){ char currline[MAXLINESIZE]; char *word; int i = 0, wordint = getline(currline); while(wordint != 0){ i = 0; wordint = -1; word = strtok(currline, " "); while(word != NULL && i < MAXLINESIZE){ if(currline[i] != ' ' && currline[i] != 0){ if(currline[i] - NUMASCII > 9){ printword(word); AddToBook(word); } else{ PrintFromDictionary(atoi(word)); } i += strlen(word); word = strtok(NULL, " "); } else{ printf(" "); i++; } } wordint = getline(currline); while(wordint == 2){ printf("\n"); wordint = getline(currline); } if (wordint != 0) printf("\n"); } return(0); }