Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define N 30
- #define M 100
- char DEVELOPMENT[] = "";
- char getchoice();
- void read(char a[M][N], char endword[], int *plength);
- void loaddict();
- void correct();
- void save();
- void stats(char a[M][N], int length);
- void legend();
- int main() {
- char choice, text[M][N], endword[] = "end", dict[M][N];
- int length = 0;
- int *plength;
- plength = &length;
- if (strcmp(DEVELOPMENT, "ON") == 0)
- {
- printf("DEVELOPMENT MODE[ON]\n");
- }
- legend();
- while(1)
- {
- printf("CHOOSE AN ACTION: ");
- choice = getchoice();
- switch (choice)
- {
- case 'r':
- read(text, endword, plength);
- break;
- case 'd':
- loaddict(dict, endword);
- break;
- case 'c':
- correct();
- break;
- case 's':
- save();
- break;
- case 'S':
- stats(text, length);
- break;
- case 'l':
- legend();
- break;
- case 'e':
- return 0;
- break;
- default:
- printf("\n*Wrong input*\n");
- break;
- }
- putchar('\n');
- }
- }
- char getchoice()
- {
- char choice;
- scanf(" %c", &choice);
- return choice;
- }
- void read(char a[M][N], char endword[], int *plength)
- {
- char test[N];
- int i;
- i=0;
- printf("(READ TEXT MODE[ON]):~ *INITIATING READ TEXT MODE*\n");
- while(1)
- {
- while (1)
- {
- printf("Type: ");
- scanf(" %s", test);
- if (strcpy(DEVELOPMENT, "ON") == 0)
- {
- printf("%d\n", strlen(test));
- }
- if (strlen(test) >= N)
- {
- printf("\nError: possible buffer overflow due to the length of the typed word. Please retype.\n");
- }
- else
- {
- break;
- }
- }
- if (strcmp(test, endword) == 0)
- {
- break;
- }
- strcpy(a[i], test);
- i++;
- }
- *plength = i;
- printf("(READ TEXT MODE[OFF]...):~ \n");
- return;
- }
- void loaddict()
- {
- printf("\nDummy function.\n");
- return;
- }
- void correct()
- {
- printf("\nText corrected.\n\n");
- return;
- }
- void save()
- {
- printf("\nText saved.\n\n");
- return;
- }
- void stats(char a[M][N], int length)
- {
- char choice, da[M][N], old[M][N];
- int lengthWords, lengthChars = 0, i, j, stop = 0, diff = 0, occ, occA[M] = {0}, k;
- for (i=0; i<length; i++)
- {
- strcpy(old[i], a[i]);
- strupr(a[i]);
- }
- printf("(STATS MODE[ON]):~ *INITIATING STATS MODE*\n");
- if (strlen(a[0]) == 0)
- {
- printf("NON READABLE TEXT.\n");
- return;
- }
- for (i=0; i < length; i++)
- {
- for (j=0; a[i][j] != '\0'; j++)
- {
- lengthChars++;
- }
- }
- lengthWords = i;
- for (i=0; i < length; i++)
- {
- occ = 1;
- for (j=i; j<length;j++)
- {
- if (strcmp(a[i], "*0*0*0*") != 0)
- {
- if (strcmp(a[i], a[j]) == 0 && i != j)
- {
- occ++;
- strcpy(a[j], "*0*0*0*");
- }
- if (j == length - 1)
- {
- strcpy(da[diff], old[i]);
- occA[diff] = occ;
- diff++;
- }
- }
- }
- }
- while (stop == 0)
- {
- printf("\nCHOOSE [a, b or c]:");
- scanf(" %c", &choice);
- switch(choice){
- case 'a':
- printf("The text is composed of %d words and %d characters (%d including the spaces).\n", lengthWords, lengthChars, lengthChars + lengthWords - 1);
- break;
- case 'b':
- printf("The text is composed of %d different words.\n", diff);
- break;
- case 'c':
- printf("Word:\tOccurence:\t\n");
- for (i=0; i<length; i++)
- {
- for (j=0; j<length; j++)
- {
- if (i==occA[j])
- {
- printf("%s\t:\t", da[j]);
- for (k=0; k<occA[j];k++)
- {
- printf("*");
- }
- putchar('\n');
- }
- }
- }
- break;
- case 'e':
- stop = 1;
- default:
- break;
- }
- }
- printf("(STATS MODE[OFF]):~ ...\n");
- return;
- }
- void legend()
- {
- printf("LEGEND:\n[r:\tInsert text]\n[d:\tLoad dictionary]\n[c:\tCorrect the loaded text]\n[S:\tStatistics]\n[s:\tSave text]\n[l:\tShow legend]\n[e:\tEscape]\n");
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement