strcoll

strcollは、ロケールのLC_COLLATEに従って文字列の順序を判定(そのロケールの辞書順)する。

Man page of STRCOLL
strcoll - cppreference.com

ロケールによっては、アルファベット順ではない場合があるらしい。
strcoll.cで、

チェコ語では、"ch"よりも"h"が前らしい。

$ vi strcoll.c
$ gcc strcoll.c -o strcoll
$ ./strcoll
ch, h
ch, h
ch, h
h, ch
$

ロケールチェコにして、strcollを呼んだ時だけ, "h"の後に"ch"が来る。
ハンガリー語スペイン語などもアルファベット順が辞書順ではないみたい。
日本語がどうなのか(あいうえお順なのかとか。)は試してない。

Sample/c/strcoll/strcoll/src/strcoll at master · bg1bgst333/Sample · GitHub