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