C API: UCollationElements.
The UCollationElements API is used as an iterator to walk through each character of an international string. Use the iterator to return the ordering priority of the positioned character. The ordering priority of a character, which we refer to as a key, defines how a character is collated in the given collation object. For example, consider the following in Slovak and in traditional Spanish collation:
. "ca" -> the first key is key('c') and second key is key('a'). . "cha" -> the first key is key('ch') and second key is key('a').
And in German phonebook collation,
. "<ae ligature>b"-> the first key is key('a'), the second key is key('e'), and . the third key is key('b').
Example of the iterator usage: (without error checking)
. void CollationElementIterator_Example() . { . UChar *s; . t_int32 order, primaryOrder; . UCollationElements *c; . UCollatorOld *coll; . UErrorCode success = U_ZERO_ERROR; . str=(UChar*)malloc(sizeof(UChar) * (strlen("This is a test")+1) ); . u_uastrcpy(str, "This is a test"); . coll = ucol_open(NULL, &success); . c = ucol_openElements(coll, str, u_strlen(str), &status); . order = ucol_next(c, &success); . ucol_reset(c); . order = ucol_prev(c, &success); . free(str); . ucol_close(coll); . ucol_closeElements(c); . }
<p<blockquote>
ucol_next() returns the collation order of the next. ucol_prev() returns the collation order of the previous character. The Collation Element Iterator moves only in one direction between calls to ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used. Whenever ucol_prev is to be called after ucol_next() or vice versa, ucol_reset has to be called first to reset the status, shifting pointers to either the end or the start of the string. Hence at the next call of ucol_prev or ucol_next, the first or last collation order will be returned. If a change of direction is done without a ucol_reset, the result is undefined. The result of a forward iterate (ucol_next) and reversed result of the
backward iterate (ucol_prev) on the same string are equivalent, if collation orders with the value 0 are ignored. Character based on the comparison level of the collator. A collation order consists of primary order, secondary order and tertiary order. The data type of the collation order is int32_t.
Definition in file ucoleitr.h.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4