if (!strcmp(s1,s2)) ではなくて、if (strcmp(s1,s2) != 0) と書く人は、どうして'!='演算子の結果を調べないんだろう。
if ((strcmp(s1,s2) != 0) == 1) としないのか不思議だ。
strcmpだと雑音が入るから、isdigitでもisalphaでもいいけど。