Searching for a word in a Dictionary - C Program

Submitted by: 
Language: 
Visitors have accessed this post 11678 times.

A program that searches for a word in a
dictionary.
- Create a small dictionary of strings
- Not in order
- Create an interface for user to search
for a word in the dictionary

If the word is not found, the word is added to
the dictionary.
The dictionary has 1000 words (English/Swahili)

  1. #include <stdio.h>/* C Standard Input and Output Library*/
  2. #define array_size 1000 /* Constant size of the array to be used in storage of strings that makes up the dictionary*/
  3.  
  4. /* Variable declarations */
  5. char dictionary_array[array_size][20]={"david", "enoch", "cheese", "donkey", "orange", "banana", "child", "globe", "family", "aeroplane", "vehicle", "shell", "plant", "treatment"};
  6. char word_to_be_searched[20], *pointer_dictionary_array, *pointer_word_to_be_searched, loop_program_character;
  7. int counter;
  8.  
  9. /* Prototyping of functions*/
  10. char* search_dictionary_for_word(char *pointer_dictionary_array, char *pointer_word_to_be_searched);
  11. char* add_word_in_dictionary (char *pointer_dictionary_array, char *pointer_word_to_be_searched);
  12.  
  13.  
  14. int main() /* The main method*/
  15. { /* Brief details on the screen about the program*/
  16. printf(" /*************************************************************************\n * Mureithi David Wachira *\n * P15/2204/2011 *\n * *\n * University of Nairobi *\n * School of Computing & Informatics *\n * *\n * Course: PROGRAMMING AND PROBLEM SOLVING (CSC 121) *\n * Date: Tuesday 02nd April 2013 *\n * *\n * A program that searches for a word in a *\n * dictionary. *\n * - Create a small dictionary of strings *\n * - Not in order *\n * - Create an interface for user to search *\n * for a word in the dictionary *\n * *\n * If the word is not found, the word is added to *\n * the dictionary. *\n * The dictionary has 1000 words (English/Swahili) *\n * *\n *************************************************************************/\n");
  17.  
  18. do
  19. { counter=0;
  20. printf("Please enter the word to be searched :\n"); /* Prompt to instruct use to enter the string to be searched*/
  21. scanf("%s",&word_to_be_searched); /* Capture of the search string by the system*/
  22. search_dictionary_for_word(dictionary_array, word_to_be_searched);
  23.  
  24. printf("\n------------------------------------------------------------------------------\nDo you want to search for another word? \nPress Y to continue or any other \nto exit : ");
  25. scanf(" %c", &loop_program_character);
  26. printf("\n------------------------------------------------------------------------------\n");
  27. }
  28. while (loop_program_character=='y'||loop_program_character=='Y');
  29.  
  30. return 0;/* An indication that the program runs successfully*/
  31. } /* The end of the main method*/
  32.  
  33. char* search_dictionary_for_word(char *pointer_dictionary_array, char *pointer_word_to_be_searched)
  34. { while (*pointer_dictionary_array!='\0') /* Until the end of array character is encountered*/
  35. {
  36. if ((strcmp(pointer_dictionary_array, pointer_word_to_be_searched))==0) //&&(strlen(pointer_dictionary_array)!=strlen(pointer_word_to_be_searched)) &&(*pointer_dictionary_array-*pointer_word_to_be_searched!=0))
  37. { printf("\nThe word \"%s\" is in the dictionary at position %d\n",word_to_be_searched, pointer_dictionary_array); /* Ouput to the screen to show that the two strigns are equal*/
  38. return 0;
  39. }
  40.  
  41. else {
  42. printf("Searched for \"%3s\" but found \"%3s\" %-5s\t\t%5d\n", word_to_be_searched, pointer_dictionary_array, " at position", pointer_dictionary_array);
  43. counter = counter+1;
  44. pointer_dictionary_array= &dictionary_array[counter][0]; /* Pointer moves to the next index of the array of characters (string)*/
  45. }
  46. }
  47.  
  48. add_word_in_dictionary (dictionary_array, word_to_be_searched); /* Calling the function add_word_in_dictionary() */
  49. return pointer_dictionary_array;
  50. }
  51.  
  52. char* add_word_in_dictionary (char *pointer_dictionary_array, char *pointer_word_to_be_searched)
  53. {
  54. pointer_dictionary_array=&dictionary_array[counter][0];
  55. strcpy(pointer_dictionary_array, pointer_word_to_be_searched);
  56. printf("\nThe word \"%s\" has not been found in the dictionary but has been added \nin the dictionary at position %d\n",pointer_word_to_be_searched, pointer_dictionary_array);
  57. return pointer_dictionary_array;
  58. }
  59.  
  60. <c>

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.

FOR YOUR OWN SAFETY, PLEASE:

1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.

Comments

Hey David, good job. Wainaina. I need to talk to you. [email protected]

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • You may insert videos with [video:URL]
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <th> <img> <h1> <h2> <h3> <iframe> [video]
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <asp>, <c>, <cpp>, <csharp>, <css>, <html4strict>, <java>, <javascript>, <mysql>, <php>, <python>, <sql>, <vb>, <vbnet>. The supported tag styles are: <foo>, [foo].
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.