#ninclude #ninclude #ninclude const unsigned char chars[] = { ' ', '.', '1', 'A', 0x81,0x40, /* double-byte space */ 0x82,0x60, /* double-byte A */ 0x82,0xA6, /* double-byte Hiragana */ 0x83,0x42, /* double-byte Katakana */ 0xA1, /* single-byte Katakana punctuation */ 0xA6, /* single-byte Katakana alphabetic */ 0xDF, /* single-byte Katakana alphabetic */ 0xE0,0xA1, /* double-byte Kanji */ 0x00 }; #define SIZE sizeof( chars ) / sizeof( unsigned char ) void main() { int j, k; const unsigned char *next; _setmbcp( 932 ); next = chars; do { next = _mbsninc( next, 1 ); j = mblen( next, MB_CUR_MAX ); if( j == 0 ) { k = 0; } else if ( j == 1 ) { k = *next; } else if( j == 2 ) { k = *(next)<<8 | *(next+1); } printf( "Next character %#6.4x\n", k ); } while( next != &chars[ SIZE - 1 ] ); }