Syscall index: 0x1163
Function signature: int MB_ElementCount(const char* buf)
Counts the number of characters, as printed on screen, of a multi-byte string.
- buf - pointer to the string to measure.
The number of characters in the string, as printed by multi-byte-aware syscalls.
The following example shows how a multi-byte string can take a memory space that's twice as large as the number of printed characters, and demonstrates how to count both size in bytes and graphical size:
const char*MBstring="\xe6\x92\xe6\x93\xe6\xa5" int bytelen = strlen(MBstring); // bytelen has a value of 6 int elemlen = MB_ElementCount(MBstring); // elemlen has a value of 3 locate_OS(2,3); Print_OS(MBstring, 0, 0); // will print three symbols on screen: an arrow up, an arrow down and a square.
Another example, which mixes standard and multi-byte characters:
const char*MBstring="Empty box: \xe6\xa5"; int bytelen = strlen(MBstring); // bytelen has a value of 13 int elemlen = MB_ElementCount(MBstring); // elemlen has a value of 12 locate_OS(2,3); Print_OS(MBstring, 0, 0); // will print "Empty box: " followed by a square.