From a53eb7be2baccf498bf6ea99d0a700d9d45462e9 Mon Sep 17 00:00:00 2001 From: Rory Healy Date: Tue, 15 Feb 2022 14:51:00 +1100 Subject: [PATCH] Initial commit --- README.md | 1 + docs/project01-rubric.html | 179 ++++++++++++ docs/project01.pdf | Bin 0 -> 133454 bytes src/main.c | 584 +++++++++++++++++++++++++++++++++++++ src/skeleton.c | 158 ++++++++++ test/test0.txt | 16 + test/test0_exp.txt | 32 ++ test/test1.txt | 14 + test/test1_exp.txt | 31 ++ 9 files changed, 1015 insertions(+) create mode 100644 README.md create mode 100755 docs/project01-rubric.html create mode 100755 docs/project01.pdf create mode 100755 src/main.c create mode 100755 src/skeleton.c create mode 100755 test/test0.txt create mode 100755 test/test0_exp.txt create mode 100755 test/test1.txt create mode 100755 test/test1_exp.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..70108ea --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# COMP10002 Assignment 1 diff --git a/docs/project01-rubric.html b/docs/project01-rubric.html new file mode 100755 index 0000000..00b1796 --- /dev/null +++ b/docs/project01-rubric.html @@ -0,0 +1,179 @@ + + +COMP10002 Foundations of Algorithms + + + +

COMP10002 Assignment 1 Feedback: XXUSERNAMEXX

+ +

+

Program Presentation

+ +Including: layout and style, readability, adherence to coding +expectations, general care and appearance. +
+Some subset of the following lines will be retained by the marker. +

+Deductions +

+Some subset of the following lines will be retained by the marker. +Deduct 0.5 marks for every type of errors found. +Marks in each section won't go below zero. +

+Additions (included in total mark only +if marks lost within this first section) +

+Other Comments from Marker

+ + + + +

Structure and Approach

+ +Including: decomposition in to functions, development of data +structures and declaration of them at the appropriate locations, +choice of parameters to functions, use of appropriate struct +and +typedef declarations, choice of algorithms or methods. +

+Some subset of the following lines will be retained by the marker. +

+Deductions +
+Some subset of the following lines will be retained by the marker. +Deduct 0.5 marks for every type of errors found. +Marks in each section won't go below zero. +

+Other comments from marker:

+ + + +

Program Execution

+Including: compilation, execution on test data, output presentation +and readability.
+Programs that do not compile in the test environment will lose all +marks in this section. +Be sure to verify your submission and check the output +before you say "finished" to yourself. +

+Some subset of the following lines will be retained by the marker. +

+Deductions +

Some subset of the following lines will be retained by the marker. +Marks in each section won't go below zero. +

+

+

Late Penalty

+If you make a late submission without having prior agreement from +the lecturer, late penalties may apply. +Submissions late for more than three days won't be accepted. Overall marks won't go below zero. + +

+ +

XXMARKXX

+ + +Overall comments from marker:

+ + +

+Assignment Marker: XXMARKERXX +
+Subject Coordinator: Jianzhong Qi, jianzhong.qi@unimelb.edu.au +
+ + diff --git a/docs/project01.pdf b/docs/project01.pdf new file mode 100755 index 0000000000000000000000000000000000000000..2540defdc0264c9e820d33b565dc194e63501cac GIT binary patch literal 133454 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 literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c new file mode 100755 index 0000000..7d7e6be --- /dev/null +++ b/src/main.c @@ -0,0 +1,584 @@ +/* Emoticon message cleanser: + * + * Skeleton code written by Farhana Choudhury and Jianzhong Qi, April 2020 + * + * Authorship Declaration: + * (1) I certify that the program contained in this submission is completely + * my own individual work, except where explicitly noted by comments that + * provide details otherwise. I understand that work that has been developed + * by another student, or by me in collaboration with other students, + * or by non-students as a result of request, solicitation, or payment, + * may not be submitted for assessment in this subject. I understand that + * submitting for assessment work developed by or in collaboration with + * other students or non-students constitutes Academic Misconduct, and + * may be penalized by mark deductions, or by other penalties determined + * via the University of Melbourne Academic Honesty Policy, as described + * at https://academicintegrity.unimelb.edu.au. + * + * (2) I also certify that I have not provided a copy of this work in either + * softcopy or hardcopy or any other form to any other student, and nor will + * I do so until after the marks are released. I understand that providing + * my work to other students, regardless of my intention or any undertakings + * made to me by that other student, is also Academic Misconduct. + * + * (3) I further understand that providing a copy of the assignment + * specification to any form of code authoring or assignment tutoring + * service, or drawing the attention of others to such services and code + * that may have been made available via such a service, may be regarded + * as Student General Misconduct (interfering with the teaching activities + * of the University and/or inciting others to commit Academic Misconduct). + * I understand that an allegation of Student General Misconduct may arise + * regardless of whether or not I personally make use of such solutions + * or sought benefit from such actions. + * + * Signed by: Rory Healy 964275 + * Dated: 9th April 2020 + */ + +#include +#include +#include +#include + +#define STAGE_NUM_ONE 1 /* stage numbers */ +#define STAGE_NUM_TWO 2 +#define STAGE_NUM_THREE 3 +#define STAGE_NUM_FOUR 4 +#define STAGE_NUM_FIVE 5 +#define STAGE_HEADER "Stage %d\n==========\n" /* stage header format string */ + +#define MAX_MSG_LENGTH 280 /* maximum message length */ +#define MAX_NUM_MSGS 100 /* maximum number of messages */ +#define MAX_EMTCN_LENGTH 50 /* maximum emot. line length */ +#define MAX_NUM_EMTCN 50 /* maximum number of emot. */ + +typedef char msg_t[MAX_MSG_LENGTH+1]; /* a message */ +typedef char emtcn_t[MAX_EMTCN_LENGTH+1]; /* an emoticon */ + +/****************************************************************/ + +/* function prototypes */ +void read_one_msg(msg_t one_msg, int max_len); +void print_stage_header(int stage_num); +int count_tokens(msg_t one_msg); + +void stage_one(msg_t one_msg); +void stage_two(msg_t msgs[], int *num_msgs); +void stage_three(msg_t msgs[], int num_msgs); +void stage_four(emtcn_t emtcns[], int *num_emtcns); +void stage_five(msg_t msgs[], int num_msgs, emtcn_t emtcns[], int num_emtcns); + +/* add your own function prototypes here */ +int is_seperating_line(msg_t one_msg); + +void remove_leading_commas(msg_t one_msg, int msg_len); +void remove_trailing_commas(msg_t one_msg, int msg_len); +void remove_consecutive_commas(msg_t one_msg, int msg_len); +int length_consecutive_commas(msg_t one_msg, int msg_len); + +void get_next_emtcn(msg_t one_msg, emtcn_t emtcn_msg, \ + int *emtcn_len, int *msg_offset); +void remove_curr_emtcn(msg_t one_msg, int emtcn_len, int offset, int *msg_len); +int get_emtcn_len(msg_t one_msg, int msg_len, int msg_offset); +int is_emtcns_same(emtcn_t emtcn1, emtcn_t emtcn2, int emtcn_len); +int is_in_dict(emtcn_t curr_emtcn, int curr_emtcn_len, \ + emtcn_t emtcns[], int num_emtcns); + +/****************************************************************/ + +/* main function controls all the action, do NOT modify this function */ +int +main(int argc, char *argv[]) { + /* to hold all input messages */ + msg_t msgs[MAX_NUM_MSGS]; + /* to hold the number of input messages */ + int num_msgs = 0; + /* to hold all input emoticons in the dictionary */ + emtcn_t emtcns[MAX_NUM_EMTCN]; + /* to hold the number of emoticons in the dictionary */ + int num_emtcns = 0; + + /* stage 1: reading the first message */ + stage_one(msgs[num_msgs]); + num_msgs++; + + /* stage 2: removing alphanumeric characters */ + stage_two(msgs, &num_msgs); + + /* stage 3: removing extra commas */ + stage_three(msgs, num_msgs); + + /* stage 4: reading the dictionary and finding the longest emoticon */ + stage_four(emtcns, &num_emtcns); + + /* stage 5: removing invalid emoticons with the help of the dictionary */ + stage_five(msgs, num_msgs, emtcns, num_emtcns); + + /* all done; take some rest */ + return 0; +} + +/* read a line of input into one_msg */ +void +read_one_msg(msg_t one_msg, int max_len) { + int i = 0, c; + while (((c = getchar()) != EOF) && (c != '\n') && (c != '\r')) { + if (i < max_len) { + one_msg[i++] = c; + } else { + printf("Invalid input line, toooooooo long.\n"); + exit(EXIT_FAILURE); + } + } + one_msg[i] = '\0'; +} + +/* print stage header given stage number */ +void +print_stage_header(int stage_num) { + printf(STAGE_HEADER, stage_num); +} + +/****************************************************************/ +/* add your code below */ + +/* removes an emtcn from a msg given a length and offset */ +void +remove_curr_emtcn(msg_t one_msg, int emtcn_len, int offset, int *msg_len) { + msg_t msg_before, msg_after; + int i, j; + + /* the message before the emtcn not in dict */ + for (i = 0; i < offset; i++) { + msg_before[i] = one_msg[i]; + } + msg_before[i] = '\0'; + + /* the message after the emtcn not in dict */ + for (j = offset + emtcn_len; one_msg[j] != '\0'; j++) { + msg_after[j - offset - emtcn_len] = one_msg[j]; + } + msg_after[j - offset - emtcn_len] = '\0'; + + /* replacing one_msg with msg_before and msg_after */ + one_msg[0] = 0; + for (i = 0; i < *msg_len - emtcn_len; i++) { + if (i < offset) { + one_msg[i] = msg_before[i]; + } else { + one_msg[i] = msg_after[i - offset]; + } + } + one_msg[i] = '\0'; + + // here is where a bug occurs in test 1 + *msg_len -= emtcn_len; +} + +/* finds the next emoticon in one_msg and copies it to emtcn_msg */ +void +get_next_emtcn(msg_t one_msg, emtcn_t emtcn_msg, \ + int *emtcn_len, int *msg_offset) { + int i; + for (i = *msg_offset; one_msg[i] != '\0'; i++) { + if (one_msg[i] == ',') { + break; + } else { + emtcn_msg[i - *msg_offset] = one_msg[i]; + } + } + *emtcn_len = i - *msg_offset; + emtcn_msg[*emtcn_len] = '\0'; + *msg_offset += *emtcn_len + 1; // add 1 to account for the comma +} + +/* tests if two emtcns are identical */ +int +is_emtcns_same(emtcn_t emtcn1, emtcn_t emtcn2, int emtcn_len) { + for (int i = 0; i < emtcn_len; i++) { + if (emtcn1[i] != emtcn2[i]) { + return 0; + } + } + return 1; +} + +/* tests if an emoticon is in the dictionary emtcns[] */ +int +is_in_dict(emtcn_t curr_emtcn, int curr_emtcn_len, \ + emtcn_t emtcns[], int num_emtcns) { + /* the current emtcn from emtcns[] being compared */ + emtcn_t emtcn_from_dict; + + int i, j; + for (i = 0; i < num_emtcns; i++) { + /* extracts the emoticon from the dictionary */ + for (j = 0; emtcns[i][j] != ','; j++) { + emtcn_from_dict[j] = emtcns[i][j]; + } + emtcn_from_dict[j] = '\0'; + + /* compares lengths first to avoid unnecessary function calls */ + if (curr_emtcn_len == j) { + if (is_emtcns_same(emtcn_from_dict, curr_emtcn, curr_emtcn_len)) { + return 1; + } + } + } + return 0; +} + +/* removes leading commas from a message */ +void +remove_leading_commas(msg_t one_msg, int msg_len) { + /* counts the number of leading commas */ + int i = 0; + while (one_msg[i] == ',') { + i += 1; + } + + /* counts the number of characters copied into new_msg */ + int j; + + /* the message without leading commas */ + msg_t new_msg; + for (j = 0; j < msg_len; j++) { + if (one_msg[j + i] == '\0') { + break; + } else { + new_msg[j] = one_msg[j + i]; + } + } + new_msg[j] = '\0'; + + /* clears one_msg, and replaces with new_msg */ + one_msg[0] = 0; + strncpy(one_msg, new_msg, j); + one_msg[j] = '\0'; +} + +/* removes trailing commas from a message */ +void +remove_trailing_commas(msg_t one_msg, int msg_len) { + /* counts the number of trailing commas */ + int i = 0; + while (one_msg[msg_len - i - 1] == ',') { + i += 1; + } + + /* counts the number of characters copied into new_msg */ + int j; + + /* the message without trailing commas */ + msg_t new_msg; + for (j = 0; j < msg_len - i; j++) { + new_msg[j] = one_msg[j]; + } + new_msg[j] = '\0'; + + /* clears one_msg, and replaces with new_msg */ + one_msg[0] = 0; + strncpy(one_msg, new_msg, j); + one_msg[j] = '\0'; +} + +/* removes consecutive commas from within a message */ +void remove_consecutive_commas(msg_t one_msg, int msg_len) { + one_msg[msg_len] = '\0'; // safety net + + int max_commas_length = length_consecutive_commas(one_msg, msg_len); + + while (max_commas_length > 1) { + int i = 0, j = 0; + msg_t new_msg, msg_cat; + + /* find out where the consecutive commas start */ + for (i = 0; i < msg_len; i++) { + if ((one_msg[i] == ',') && (one_msg[i + 1] == ',')) { + break; + } + } + /* add all characters including one comma to new_msg */ + strncpy(new_msg, one_msg, i); + new_msg[i] = '\0'; + + /* find out how long the rest of the message is */ + for (j = 0; j < msg_len; j++) { + if (one_msg[j + i + max_commas_length - 1] == '\0') { + break; + } else { + msg_cat[j] = one_msg[j + i + max_commas_length - 1]; + } + } + msg_cat[j] = '\0'; + + /* and add the rest of the message to new_msg (exluding the extra + * commas + */ + + strncat(new_msg, msg_cat, j); + new_msg[i + j] = '\0'; + + /* clear one_msg and copy the edited message to it */ + one_msg[0] = 0; + strncpy(one_msg, new_msg, i + j); + one_msg[i + j] = '\0'; + msg_len = i + j; + + /* Loop guard */ + max_commas_length = length_consecutive_commas(one_msg, msg_len); + } + +} + +/* finds the length of the first non-one length of commas */ +int length_consecutive_commas(msg_t one_msg, int msg_len) { + int i, counter = 0; + for (i = 0; i < msg_len; i++) { + if (one_msg[i] == ',') { + if (one_msg[i + 1] == ',') { + counter += 1; + continue; + } else { + if (counter) { + break; + } + } + } + } + return counter + 1; +} + +/* checks if the current message is a seperating line */ +int +is_seperating_line(msg_t one_msg) { + msg_t seperating_line = "###"; + if (!strncmp(one_msg, seperating_line, strlen(seperating_line))) { + return 1; + } + return 0; +} + +/* scan a message and count the number of tokens in it */ +int +count_tokens(msg_t one_msg) { + /* this counts the number of commas, which is analogous + to the number of tokens */ + int num_tokens = 1; + + for (int i = 0; i < (int)strlen(one_msg); i++) { + if (one_msg[i] == ',') { + num_tokens += 1; + } + } + + return num_tokens; +} + +/****************************************************************/ +/* stages 1 - 5 */ + +/* stage 1: reading the first message */ +void +stage_one(msg_t one_msg) { + /* print stage header */ + print_stage_header(STAGE_NUM_ONE); + + /* read the first message */ + read_one_msg(one_msg, MAX_MSG_LENGTH); + + /* count and print the number of tokens */ + printf("Number of tokens: %d\n\n", count_tokens(one_msg)); +} + +/* stage 2: removing alphanumeric characters */ +void +stage_two(msg_t msgs[], int *num_msgs) { + print_stage_header(STAGE_NUM_TWO); + + /* *num_msgs will be used as an index, hence why it is zeroed */ + *num_msgs = 0; + + /* the current message being analysed */ + msg_t curr_msg; + + /* as msgs[0] already has a message in it, copy that to curr_msg + * and use that in the loop first, then read more messages + */ + strncpy(curr_msg, msgs[0], strlen(msgs[0])); + curr_msg[strlen(msgs[0])] = '\0'; + + do { + if (is_seperating_line(curr_msg)) { + break; + } + + /* the message without alphanumeric characters */ + msg_t new_msg; + + /* the current character length of new_msg */ + int len = 0; + + for (int j = 0; j <= (int)strlen(curr_msg); j++) { + if (!isalnum(curr_msg[j])) { + new_msg[len++] = curr_msg[j]; + } + } + new_msg[len] = '\0'; + + /* Copy the edited message to msgs[] */ + strncpy(msgs[*num_msgs], new_msg, len); + msgs[*num_msgs][len] = '\0'; + + /* prepare for the next message to be read */ + read_one_msg(curr_msg, MAX_MSG_LENGTH); + *num_msgs += 1; + } while (*num_msgs <= MAX_NUM_MSGS); + + for (int i = 0; i < *num_msgs; i++) { + printf("%s\n", msgs[i]); + } + printf("\n"); +} + +/* stage 3: removing extra commas */ +void +stage_three(msg_t msgs[], int num_msgs) { + print_stage_header(STAGE_NUM_THREE); + int i, curr_msg_len; + msg_t curr_msg; + + for (i = 0; i < num_msgs; i++) { + /* copy the current message stored in msgs[i] to curr_msg */ + curr_msg_len = strlen(msgs[i]); + strncpy(curr_msg, msgs[i], curr_msg_len); + curr_msg[curr_msg_len] = '\0'; + + /* remove extra commas from curr_msg */ + remove_leading_commas(curr_msg, curr_msg_len); + curr_msg_len = strlen(curr_msg); + remove_trailing_commas(curr_msg, curr_msg_len); + curr_msg_len = strlen(curr_msg); + remove_consecutive_commas(curr_msg, curr_msg_len); + curr_msg_len = strlen(curr_msg); + + /* Clear the current message stored in msgs[i] and replace + * with the edited message stored in curr_msg + */ + msgs[i][0] = 0; + strncpy(msgs[i], curr_msg, strlen(curr_msg)); + msgs[i][curr_msg_len] = '\0'; + } + + for (int j = 0; j < num_msgs; j++) { + printf("%s\n", msgs[j]); + } + printf("\n"); +} + +/* stage 4: reading the dictionary and finding the longest emoticon */ +void +stage_four(emtcn_t emtcns[], int *num_emtcns) { + print_stage_header(STAGE_NUM_FOUR); + + /* the emoticon to be read */ + emtcn_t new_emtcn; + + while (*num_emtcns <= MAX_NUM_EMTCN) { + read_one_msg(new_emtcn, MAX_EMTCN_LENGTH); + /* break as soon as the line is empty */ + if ((int)strlen(new_emtcn) == 0) { + break; + } + strncpy(emtcns[*num_emtcns], new_emtcn, strlen(new_emtcn)); + emtcns[*num_emtcns][(int)strlen(new_emtcn)] = '\0'; + *num_emtcns += 1; + } + emtcn_t max_emtcn; + int max_emtcn_len = 0, curr_len, i, j; + for (i = 0; i < *num_emtcns; i++) { + /* get the length of emoticon, and compare it to the max length */ + for (j = 0; j < (int)strlen(emtcns[i]); j++) { + if (emtcns[i][j] == ',') { + break; + } + } + curr_len = j; + + if (curr_len > max_emtcn_len) { + max_emtcn_len = curr_len; + strncpy(max_emtcn, emtcns[i], j); + max_emtcn[j] = '\0'; + } + } + printf("Emoticon total: %d\nLongest: %s\nLength: %d\n", + *num_emtcns, max_emtcn, max_emtcn_len); + printf("\n"); +} + +/* stage 5: removing invalid emoticons with the help of the dictionary */ +void +stage_five(msg_t msgs[], int num_msgs, emtcn_t emtcns[], int num_emtcns) { + print_stage_header(STAGE_NUM_FIVE); + int i, j; + + /* the length of current message from msgs[] */ + int curr_msg_len = 0; + + /* the current emtcn from msgs[] */ + emtcn_t curr_emtcn; + int curr_emtcn_len = 0; + + /* the index of the curr_emtcn from msgs[] */ + int curr_offset = 0; + + for (i = 0; i < num_msgs; i++) { + for (j = 0; msgs[i][j] != '\0'; j++) { + /* do nothing, count characters before \0 */ + } + curr_msg_len = j; + + while (curr_offset < curr_msg_len) { + /* get the next emoticon, check if it's in emtcns, and remove it + * from msgs[i] if its not in emtcns + */ + get_next_emtcn(msgs[i], curr_emtcn, &curr_emtcn_len, &curr_offset); + + if (!is_in_dict(curr_emtcn, curr_emtcn_len, emtcns, num_emtcns)) { + /* this is much easier to do with strncat, but can't be used + * here due to assignment restrictions + */ + remove_curr_emtcn(msgs[i], curr_emtcn_len, \ + (curr_offset - curr_emtcn_len - 1), \ + &curr_msg_len); + } + } + curr_msg_len = 0; + curr_offset = 0; + } + + for (i = 0; i < num_msgs; i++) { + if (msgs[i][0] == '\0') { + continue; + } + printf("%s\n", msgs[i]); + } +} + +/* + * _ _ _ _ + * /\ | | (_) | | | | + * / \ | | __ _ ___ _ __ _ | |_ | |__ _ __ ___ ___ + * / /\ \ | | / _` | / _ \ | '__| | | | __| | '_ \ | '_ ` _ \ / __| + * / ____ \ | | | (_| | | (_) | | | | | | |_ | | | | | | | | | | \__ \ + * /_/ \_\ |_| \__, | \___/ |_| |_| \__| |_| |_| |_| |_| |_| |___/ + * __/ | + * |___/ + * ______ _ + * /\ | ____| | | + * / \ _ __ ___ | |__ _ _ _ __ | | + * / /\ \ | '__| / _ \ | __| | | | | | '_ \ | | + * / ____ \ | | | __/ | | | |_| | | | | | |_| + * /_/ \_\ |_| \___| |_| \__,_| |_| |_| (_) + * + */ diff --git a/src/skeleton.c b/src/skeleton.c new file mode 100755 index 0000000..9b5586b --- /dev/null +++ b/src/skeleton.c @@ -0,0 +1,158 @@ +/* Emoticon message cleanser: + * + * Skeleton code written by Farhana Choudhury and Jianzhong Qi, April 2020 + * + */ + +#include +#include +#include + +#define STAGE_NUM_ONE 1 /* stage numbers */ +#define STAGE_NUM_TWO 2 +#define STAGE_NUM_THREE 3 +#define STAGE_NUM_FOUR 4 +#define STAGE_NUM_FIVE 5 +#define STAGE_HEADER "Stage %d\n==========\n" /* stage header format string */ + +#define MAX_MSG_LENGTH 280 /* maximum message length */ +#define MAX_NUM_MSGS 100 /* maximum number of messages */ +#define MAX_EMTCN_LENGTH 50 /* maximum emot. line length */ +#define MAX_NUM_EMTCN 50 /* maximum number of emot. */ + +typedef char msg_t[MAX_MSG_LENGTH+1]; /* a message */ +typedef char emtcn_t[MAX_EMTCN_LENGTH+1]; /* an emoticon */ + +/****************************************************************/ + +/* function prototypes */ +void read_one_msg(msg_t one_msg, int max_len); +void print_stage_header(int stage_num); +int count_tokens(msg_t one_msg); + +void stage_one(msg_t one_msg); +void stage_two(msg_t msgs[], int *num_msgs); +void stage_three(msg_t msgs[], int num_msgs); +void stage_four(emtcn_t emtcns[], int *num_emtcns); +void stage_five(msg_t msgs[], int num_msgs, emtcn_t emtcns[], int num_emtcns); + +/* add your own function prototypes here */ + + +/****************************************************************/ + +/* main function controls all the action, do NOT modify this function */ +int +main(int argc, char *argv[]) { + /* to hold all input messages */ + msg_t msgs[MAX_NUM_MSGS]; + /* to hold the number of input messages */ + int num_msgs = 0; + /* to hold all input emoticons in the dictionary */ + emtcn_t emtcns[MAX_NUM_EMTCN]; + /* to hold the number of emoticons in the dictionary */ + int num_emtcns = 0; + + /* stage 1: reading the first message */ + stage_one(msgs[num_msgs]); + num_msgs++; + + /* stage 2: removing alphanumeric characters */ + stage_two(msgs, &num_msgs); + + /* stage 3: removing extra commas */ + stage_three(msgs, num_msgs); + + /* stage 4: reading the dictionary and finding the longest emoticon */ + stage_four(emtcns, &num_emtcns); + + /* stage 5: removing invalid emoticons with the help of the dictionary */ + stage_five(msgs, num_msgs, emtcns, num_emtcns); + + /* all done; take some rest */ + return 0; +} + +/* read a line of input into one_msg */ +void +read_one_msg(msg_t one_msg, int max_len) { + int i = 0, c; + while (((c = getchar()) != EOF) && (c != '\n') && (c != '\r')) { + if (i < max_len) { + one_msg[i++] = c; + } else { + printf("Invalid input line, toooooooo long.\n"); + exit(EXIT_FAILURE); + } + } + one_msg[i] = '\0'; +} + +/* print stage header given stage number */ +void +print_stage_header(int stage_num) { + printf(STAGE_HEADER, stage_num); +} + +/****************************************************************/ +/* add your code below */ + +/* scan a message and count the number of tokens (separated by commas) in it */ +int +count_tokens(msg_t one_msg) { + /* add code here to count the number commas in one_msg, + and return the count + 1 */ + + return 1; +} + +/* stage 1: reading the first message */ +void +stage_one(msg_t one_msg) { + /* print stage header */ + print_stage_header(STAGE_NUM_ONE); + + /* read the first message */ + + /* count and print the number of tokens */ + printf("Number of tokens: %d\n\n", count_tokens(one_msg)); +} + +/* stage 2: removing alphanumeric characters */ +void +stage_two(msg_t msgs[], int *num_msgs) { + /* add code for stage 2 */ + /* print stage header */ + print_stage_header(STAGE_NUM_TWO); + + printf("\n"); +} + +/* stage 3: removing extra commas */ +void +stage_three(msg_t msgs[], int num_msgs) { + /* add code for stage 3 */ + /* print stage header */ + print_stage_header(STAGE_NUM_THREE); + + printf("\n"); +} + +/* stage 4: reading the dictionary and finding the longest emoticon */ +void stage_four(emtcn_t emtcns[], int *num_emtcns) { + /* add code for stage 4 */ + /* print stage header */ + print_stage_header(STAGE_NUM_FOUR); + + printf("\n"); +} + +/* stage 5: removing invalid emoticons with the help of the dictionary */ +void +stage_five(msg_t msgs[], int num_msgs, emtcn_t emtcns[], int num_emtcns) { + /* add code for stage 5 */ + /* print stage header */ + print_stage_header(STAGE_NUM_FIVE); + + printf("\n"); +} diff --git a/test/test0.txt b/test/test0.txt new file mode 100755 index 0000000..47c43c6 --- /dev/null +++ b/test/test0.txt @@ -0,0 +1,16 @@ +That,was,really,funny,=)),:)) +I,have,no,clue,:/,:?,on,this,matter +^-^,You,are,the,best,*-*,:-* +See,you,|->,bye +Thank,you,:) +### +:),happy +:)),happy +^-^,happy +:?,confused +:/,confused +=)),fun +:(,sad +:((,sad +**_**,love +:-*,love \ No newline at end of file diff --git a/test/test0_exp.txt b/test/test0_exp.txt new file mode 100755 index 0000000..866cb31 --- /dev/null +++ b/test/test0_exp.txt @@ -0,0 +1,32 @@ +Stage 1 +========== +Number of tokens: 6 + +Stage 2 +========== +,,,,=)),:)) +,,,,:/,:?,,, +^-^,,,,,*-*,:-* +,,|->, +,,:) + +Stage 3 +========== +=)),:)) +:/,:? +^-^,*-*,:-* +|-> +:) + +Stage 4 +========== +Emoticon total: 10 +Longest: **_** +Length: 5 + +Stage 5 +========== +=)),:)) +:/,:? +^-^,,:-* +:) diff --git a/test/test1.txt b/test/test1.txt new file mode 100755 index 0000000..12f5124 --- /dev/null +++ b/test/test1.txt @@ -0,0 +1,14 @@ +You,only,live,once,:),live,happy,>:< +**_**,concert,in,town +That,was,unexpected,:(,:'(,:( +Thank,you,:-) +:))),I,told,you,:#,:),:# +### +:|,emotion-less +:),happy +:)),happy +:(,sad +:'(,sad +:?,confused +:-*,love +>:<,love \ No newline at end of file diff --git a/test/test1_exp.txt b/test/test1_exp.txt new file mode 100755 index 0000000..788fff5 --- /dev/null +++ b/test/test1_exp.txt @@ -0,0 +1,31 @@ +Stage 1 +========== +Number of tokens: 8 + +Stage 2 +========== +,,,,:),,,>:< +**_**,,, +,,,:(,:'(,:( +,,:-) +:))),,,,:#,:),:# + +Stage 3 +========== +:),>:< +**_** +:(,:'(,:( +:-) +:))),:#,:),:# + +Stage 4 +========== +Emoticon total: 8 +Longest: :)) +Length: 3 + +Stage 5 +========== +:),>:< +:(,:'(,:( +,,:),