strxfrm

strcollを扱った時に、チェコ語などの場合は、strcmpとstrcollで順番が変わってしまうことがわかった。
strcmpでもstrcollと同じ順番の結果にするには、対象文字列をstrxfrmで変換しないといけない。

Man page of STRXFRM
strxfrm - cppreference.com

strxfrm.cで、

こうすると、

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

最後はstrcmpでもstrcollと同じ順番の結果になった。

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