標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
Language Environment | 両方 |
#include <collate.h>
int collequiv(collel_t c, collel_t **list);
基本の重みが c の基本の重みと同一の、すべての照合エレメントを検出します。次に、検出されたすべてのエレメントが保管されている配列の先頭エレメントを指すように、リストを更新します。エレメントのリストは、カテゴリー LC_ALL、LC_COLLATE、または LC_CTYPE で setlocale() を次に呼び出すまで有効です。
collequiv() をもう一度呼び出すと、現行のリストがオーバーライドされる ことがあります。
setlocale() と locale.h の影響に関する詳細 は、「z/OS XL C/C++ プログラミング・ガイド」の『国際化: ロケールと文字セット』を参照してください。
正常に実行された場合、collequiv() は、検出された照合エレメントの数を戻します。
c の値が、現行ロケールの照合エレメントの有効範囲にない場合は、collequiv() は -1 を戻します。
⁄* CELEBC22
This example prints the collating elements that have an
equivalent weight as the collating element passed in
argv[1].
*⁄
#include "stdio.h"
#include "locale.h"
#include "collate.h"
#include "stdlib.h"
#include "wctype.h"
#include "wchar.h"
main(int argc, char *argv[]) {
collel_t e, *rp;
int i;
setlocale(LC_ALL, "");
if ((e = strtocoll(argv[1])) == (collel_t)-1) {
printf("'%s' collating element not defined¥n", argv[1]);
exit(1);
}
if ((i = collequiv(e, &rp)) == -1) {
printf("Invalid collating element '%s'¥n", argv[1]);
exit(1);
}
for (; i-- > 0; rp++) {
if (ismccollel(*rp))
printf("'%s' ", colltostr(*rp));
else if (iswprint(*rp))
printf("'%lc' ", *rp);
else
printf("'%x' ", *rp);
}
}