Dr. Dobb's Journal June 1998
(a)
int istrcmp(char *s, char *t)
{   for ( ; *s == *t; s++, t++)
    if (*s == 0)
        return 0;
    return *s - *t;
}
(b)
int rstrcmp(char *s, char *t)
{   if (*s == *t) {
        if (*s)
            return rstrcmp(s+1, t+1);
        else
            return 0;
    } else
        return (*s - *t);
}
(c)
int rcstrcmp(char *s, char *t)
{   return (*s == *t)
           ? (*s ? rcstrcmp(s+1, t+1) : 0)
           : *s - *t;
}