strcmp()の実現について

strcmp文字列の比較

  1. 最初の文字列が2番目の文字列より大きく、戻り値が0より大きい。

  2. 最初の文字列は2番目の文字列と等しく、戻り値は0です。

  3. 3番目の文字列は2番目の文字列より小さく、戻り値は0未満です。

  4. 文字列の比較は、文字ごとに比較することです。ascllコード値を比較することにより、待機していない場合は直接戻り、等しい場合は、文字列がゼロより長くなるまで次の文字を比較します。このとき、どの文字列が長くなりますか。 、どの文字列が大きいか。

  5. 関数の実装

     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つが空であるかどうかが判断されます。 。

おすすめ

転載: blog.csdn.net/weixin_43580319/article/details/112140920