[Solved] Compare two strings and find mismatch count [closed]


strcmp will not give you the number of characters matching in the given strings. Try the below code, It will give number of matching characters in the input strings.

#include <string.h>

int GetMatchingChars (const char *s1, const char *s2)
{
    int len1;
    int len2;
    int count = 0;
    int minLen = 0;
    char *shortPtr = NULL;
    char *longPtr = NULL;

    /* First check if the string are equal, return either len, no need to go further */
    if (strcmp (s1, s2) == 0) {
        return strlen(s1); /* or s2 */
    }

    len1 = strlen (s1);
    len2 = strlen (s2);
    minLen = (len1 <= len2)? len1:len2;
    shortPtr = (len1 <= len2)? s1:s2;
    longPtr =  (shortPtr == s1)? s2:s1;

    /* Loop through the shorter string */
    while (*shortPtr != '\0') {
        if (*shortPtr == *longPtr) {
            count++;
        }
        shortPtr++;  
        longPtr++;
    }

    return count;      
}

int main()
{
    char *s1 = "saac";
    char *s2 = "sbab";
    printf ("Matching len = %d\n", GetMatchingChars (s1,s2));
}

solved Compare two strings and find mismatch count [closed]