0

strcmp が返されることは知っています...

ゼロより大きい値は、一致しない最初の文字の値が str2 よりも str1 の方が大きいことを示します。ゼロ未満の値はその反対を示しま​​す。

しかし、これらの正または負の数値は何を意味するのでしょうか? たとえば、2 とはどういう意味ですか?

4

4 に答える 4

9

標準では、特定の数値が何を意味するかはわかりません。各実装は、必要に応じてゼロより大きい、等しい、またはゼロ未満を返す限り、好きなものを返すことができます。

于 2012-08-01T13:50:29.627 に答える
7

要するに、何もありません。通常、関数の実装方法に依存しますが、それに依存することはできません。

たとえば、彼らがここで話している実装では (3 番目の投稿): http://compsci.ca/v3/viewtopic.php?t=24383最初の異なる文字 (の数値表現) の違いを返しますstrcmp("ab","ad")。戻り-2ます。

または、この実装では、http://en.wikibooks.org/wiki/C_Programming/Strings#The_strcmp_function同じ呼び出しで が返され-1ます。

于 2012-08-01T13:50:11.653 に答える
7

0 より大きい値は、一致しない最初の文字が str2 よりも str1 の方が大きいことを示します。

2 > 0

それで

2 は、一致しない最初の文字の値が str2 よりも str1 に大きいことを示します。

于 2012-08-01T13:50:14.257 に答える
2

返された整数の符号のみが意味を持ちます。通常、ほとんどの実装では (それぞれ) -1、0、+1 ですが、正確な値に依存することはありません。

于 2012-08-01T13:51:09.890 に答える