You are viewing a single comment's thread. Return to all comments →
char* kth_word_in_mth_sentence_of_nth_paragraph(char**** document, int k, int m, int n) { return document[n-1][m-1][k-1]; } char** kth_sentence_in_mth_paragraph(char**** document, int k, int m) { return document[m-1][k-1]; } char*** kth_paragraph(char**** document, int k) { return document[k-1]; } char**** get_document(char* text) { int i=0,j=0,k=0,n_para = 0, n_sent[MAX_PARAGRAPHS] = {0}, n_word[MAX_PARAGRAPHS][MAX_CHARACTERS] = {{0}}; char ****doc = NULL; text[strlen(text)] = '\n'; text[strlen(text)] = '\0'; //printf("%s\n", text); while(text[i] != '\0') { if(text[i] == ' ') { n_word[n_para][n_sent[n_para]]++; i++; continue; } else if(text[i] == '.') { n_word[n_para][n_sent[n_para]]++; n_sent[n_para]++; i++; continue; } else if(text[i] == '\n') { n_para++; i++; } else { i++; } } doc = (char ****)calloc(n_para, sizeof(char ***)); char *str = text; char *reserve = NULL; for(i = 0; i < n_para; i++) { *(doc+i) = (char ***) calloc(n_sent[i], sizeof(char **)); //printf("n_sent[%d] = %d\n", i, n_sent[i]); for(j = 0; j < n_sent[i]; j++) { *(*(doc+i)+j) = (char **) calloc(n_word[i][j], sizeof(char *)); //printf("n_word[%d][%d] = %d\n", i, j, n_word[i][j]); for(k = 0; k < n_word[i][j]; k++) { *(*(*(doc+i)+j)+k) = (char *)calloc(100, sizeof(char)); doc[i][j][k] = strtok_r(str, " .\n", &reserve); if(i == 0 && j == 0 && k == 0) str = NULL; } } } return doc; }
Seems like cookies are disabled on this browser, please enable them to open this website
Querying the Document
You are viewing a single comment's thread. Return to all comments →