私はC言語の文字列に取り組んでいます。正確にLexicographic Orderとは何か、そしてC言語でどのように使われているのかを聞きたいと思います。これは2つの文字列を比較する最良の方法です。私はstrcmpについて読みましたが、それは辞書編集の比較ですが、私は混乱しています。Lexicographic Order in C
-5
A
答えて
0
辞書順は、レキシコンによって定義された順序、または人々のコミュニケーション方法によって定義された順序です。英語を話す人間は、私たちの辞書ではAppleという言葉がCatの前に来るということに同意します。私たちはそれを「アルファベット順」と呼んでいます。あなたのケースでは、strcmpを使用すると、ASCIIチャートで定義された順序になります。これは、一貫性のある大文字小文字を使用する限りアルファベット順になります。 'A'はASCIIチャートの 'B'の前に表示されるため 'A'は 'B'より小さい。
1
strcmp
は、文字列を比較するために辞書順を使用します。つまりアルファベットに従います。英語では、FはGの直前にあり、ZはYの直後に来ます。strcmp
はこの順序を考慮しています。なぜなら、ASCIIテーブルがアルファベット順に文字を並べ替えるからです。典型的strcmp
関数は、それは\0
は見られなかったが、文字をループ、及び現在の文字が等しい
int strcmp(const char *a, const char *b)
{
for (; *a && *b && *a == *b; ++a, ++b)
;
return *b - *a;
}
あろう。文字が等しくならないか、または\0
が見えるとすぐに、ループが壊れて、return
式が評価されます。 \0
が見られた場合は、両方の文字が等しく、\0
- \0
は0である必要があります。
関連する問題
- 1. MySQL:select select in order
- 2. ORDER BY RAND()in
- 3. Javascript sort array in order
- 4. sql ORDER BY句IN FOR XML
- 5. IN()内のMySQL - ORDER BYの値
- 6. IN()句のPostgreSQL ORDER BYの値
- 7. Xcode C++ Struct Order
- 8. c#datagridview order rows?
- 9. matlab in C C++とC C++ in matlab
- 10. SELECT WHEREグループID IN配列ORDER BYおよびグループ
- 11. C++、私のC IN
- 12. C#COM INTEROP in C++
- 13. Search in ListView c#
- 14. OutOfMemoryException in C#
- 15. Regex in Objective-c
- 16. SpellCheck in c#
- 17. C Bubblesort in LinkedList
- 18. ファームウェア_nop()in c#
- 19. QuickSort in C++
- 20. HH:MM in C#
- 21. com.android.camera.action.CROP in objective-c?
- 22. ソケットプログラミングaccept()in C
- 23. UheeledVehicle movement in C++
- 24. LuaInterface in C#
- 25. Chess engine in C
- 26. KeyNotFoundException in C#
- 27. for_each()in C++
- 28. classwork - shellsort in C#?
- 29. gridview in C#
- 30. datagridview in c#
辞書編集がどのようなものかを知りたい場合は、定義を検索するか、 "字句辞書"のタグテキストを読んでください。 Cの文字列の比較では、達成しようとしていることをより具体的にする必要があります。 – Arc676
Wikipediaには、[辞書順](https://en.wikipedia.org/wiki/Lexicographical_order)(必要ないと思われる)や[アルファベット順](https://en.wikipedia.org/)の記事があります。 wiki/Alphabetical_order)(これはより有用である可能性が高い)。 'strcmp()'を使うと、シングルバイトコードセットのための 'コードポイント順'が得られます。 –