strcmpの戻り値についてご質問ですがいったい何が戻ってきてるのでしょう?
0より小か大もしくは=で比較していますが-54だったり3だったりでこれは
strcmp(s1,s2)を考えた場合に、s1のバイト数-s2のバイト数を戻り値にしてるのでしょうか?
処理系によって値は異なるみたいですがVC++6.0です。
strcmp
Re:strcmp
VC++6.0のMSDNによると、比較の仕方は基本的に辞書と同じようですね。
ためしに実装してみました。
ためしに実装してみました。
int strcmp(const char* str1, const char* str2) { while (*str1 != '\0' && *str2 != '\0') { if (*str1 != *str2) { break; } else { ++str1; ++str2; } } if (*str1 == '\0' && *str2 == '\0') { return 0; } else if (*str1 > *str2) { return 1; } else { return -1; } }