A problem exists like this gets only longest common sub string.suppose my dictionary has words crick,
cricketer and testing input is cricking,the match should be to crick but the program gives cricketer as closest matching string

As I understand it, you’re writing a script which accepts as input a word (which I will call the target) and the name of a dictionary file. The purpose of the script is to identify the best match for the target (if any) among the entries in the dictionary. Well, there would seem to be four possible ways in which a dictionary entry can match the target word:

They are identical

The target is a substring of the dictionary entry

The dictionary entry is a substring of the target

They share a common substring.

I suppose it’s obvious that if (1) is satisfied, this is the best match. And from earlier posts in this thread, it appears that if none of (1), (2), or (3) is true, then (4) looks for the the longest common substring (i.e., the “best” match is the one with the longest substring in common). But now things get murky. What if both (2) and (3) are satisfied? For example, the target is reread and the dictionary contains both read and rereading? And this is only one example of the sort of edge cases that need to be considered.

suppose my dictionary has words crick, cricketer and testing input is cricking,the match should be to crick

OK, but why? What are the rules for a “best match”? These rules need to be specified very precisely (and of course only you can do this, since only you know what your script is intended to do).

Here is how I would approach the problem:

Think through the above considerations, and come up with a precise set of rules describing exactly what is the “best match” in all possible cases.

Illustrate each of these rules with sample input (target word and dictionary contents) together with the desired output.

When putting a smiley right before a closing parenthesis, do you:

Use two parentheses: (Like this: :) )
Use one parenthesis: (Like this: :)
Reverse direction of the smiley: (Like this: (: )
Use angle/square brackets instead of parentheses
Use C-style commenting to set the smiley off from the closing parenthesis
Make the smiley a dunce: (:>
I disapprove of emoticons
Other