strcmp文字列の比較
-
最初の文字列が2番目の文字列より大きく、戻り値が0より大きい。
-
最初の文字列は2番目の文字列と等しく、戻り値は0です。
-
3番目の文字列は2番目の文字列より小さく、戻り値は0未満です。
-
文字列の比較は、文字ごとに比較することです。ascllコード値を比較することにより、待機していない場合は直接戻り、等しい場合は、文字列がゼロより長くなるまで次の文字を比較します。このとき、どの文字列が長くなりますか。 、どの文字列が大きいか。
-
関数の実装
int my_strcmp(const char* str1, const char* str2) { while (*str1 && *str2) { if (*str1 > *str2) { return 1; } else if (*str1 < *str2) { return - 1; } else { str1++; str2++; } } if (*str1) { return 1; } else if (*str2) { return -1; } return 0; }
最初のwhileの実行が完了した後、2つの文字列の一方が比較されました。この時点で、どちらの文字列が最初に空で、どちらが最初に空でどちらが小さいか、もう1つが空であるかどうかが判断されます。 。