Created
December 31, 2024 15:29
-
-
Save sats17/c9c0ba38d91440ab0091f587b9d5b540 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apple,a sweet fruit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdbool.h> | |
#include <ctype.h> | |
#include <stdlib.h> | |
#include <string.h> | |
bool is_string_matching(char *str1, char *str2) { | |
int i = 0; | |
while (str1[i] != '\0' && str2[i] != '\0') { | |
if (tolower((unsigned char)str1[i]) != tolower((unsigned char)str2[i])) { | |
return false; | |
} | |
i++; | |
} | |
if (str1[i] != '\0' || str2[i] != '\0') { | |
return false; | |
} | |
return true; | |
} | |
char* read_data_from_file(char *input) { | |
FILE *file; | |
file = fopen("dictonary.txt", "r"); | |
if (file == NULL) { | |
printf("File not found\n"); | |
return NULL; | |
} | |
char ch; | |
char buffer[256]; | |
int index = 0; | |
while ((ch = fgetc(file)) != EOF) { | |
if (ch == ',') { | |
buffer[index] = '\0'; | |
if (is_string_matching(buffer, input)) { | |
int output_index = 0; | |
char *output = (char*)malloc(256 * sizeof(char)); | |
while((ch = fgetc(file)) != '\n' && ch != EOF) { | |
output[output_index++] = ch; | |
} | |
output[output_index] = '\0'; | |
fclose(file); | |
return output; | |
} else { | |
while((ch = fgetc(file)) != '\n' && ch != EOF); | |
} | |
index = 0; | |
} else { | |
buffer[index++] = ch; | |
} | |
} | |
fclose(file); | |
return NULL; | |
} | |
bool add_data_to_file(char *word, char* meaning) { | |
FILE *file; | |
file = fopen("dictonary.txt", "a"); | |
if (file == NULL) { | |
printf("File not found\n"); | |
return false; | |
} | |
fprintf(file, "\n%s,%s", word, meaning); | |
fclose(file); | |
return true; | |
} | |
int main(int argc, char *argv[]) { | |
if (argc < 2) { | |
printf("Usage: %s <command> [arguments]\n", argv[0]); | |
printf("Commands:\n"); | |
printf(" add <word> <meaning> Add a new word and its meaning to the dictionary\n"); | |
printf(" read <word> Read the meaning of a word from the dictionary\n"); | |
return 1; | |
} | |
if (strcmp(argv[1], "add") == 0) { | |
if (argc != 4) { | |
printf("Usage: %s add <word> <meaning>\n", argv[0]); | |
return 1; | |
} | |
printf("Adding word...\n"); | |
printf("Word: %s\n", argv[2]); | |
printf("Meaning: %s\n", argv[3]); | |
if (add_data_to_file(argv[2], argv[3])) { | |
printf("Word added successfully\n"); | |
} else { | |
printf("Failed to add word\n"); | |
} | |
} else if (strcmp(argv[1], "read") == 0) { | |
if (argc != 3) { | |
printf("Usage: %s read <word>\n", argv[0]); | |
return 1; | |
} | |
char *meaning = read_data_from_file(argv[2]); | |
if (meaning != NULL) { | |
printf("Meaning: %s\n", meaning); | |
free(meaning); // Remember to free the allocated memory | |
} else { | |
printf("Word not found\n"); | |
} | |
} else { | |
printf("Unknown command: %s\n", argv[1]); | |
printf("Usage: %s <command> [arguments]\n", argv[0]); | |
printf("Commands:\n"); | |
printf(" add <word> <meaning> Add a new word and its meaning to the dictionary\n"); | |
printf(" read <word> Read the meaning of a word from the dictionary\n"); | |
return 1; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment