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; }