Improving function that compares two strings
Your parameters should be const and your loop need only to check one string for the terminator.  For example in the following loop, if *s1 is 0 the loop stops because of the first condition. If *s1 is not 0 but *s2 is 0,  the loop stops because of the 2nd condition.

int match(const char *s1, const char *s2)
{
    while (*s1 &amp;&amp; (*s1++ == *s2++)) {
         // nothing
    }
    return *s1 - *s2;
}