What you’re looking for are called String Metric algorithms. There a significant number of them, many with similar characteristics. Among the more popular:
- Levenshtein Distance : The minimum number of single-character edits required to change one word into the other. Strings do not have to be the same length
- Hamming Distance : The number of characters that are different in two equal length strings.
- Smith–Waterman : A family of algorithms for computing variable sub-sequence similarities.
- Sørensen–Dice Coefficient : A similarity algorithm that computes difference coefficients of adjacent character pairs.
Have a look at these as well as others on the wiki page on the topic.