// // Print the Unicode Code Points of Russian Letters // Written in UTF-8. // #include // The line in UTF-8 encoding containing 66 Russian letters const char * const RUS_ALPHA = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; int main() { while (true) { int n; printf("Number of Russian letter (0-65): "); if (scanf("%d", &n) < 1 || n < 0 || n > 65) break; char utf8[4]; utf8[0] = RUS_ALPHA[n*2]; utf8[1] = RUS_ALPHA[n*2 + 1]; utf8[2] = 0; int c = ( ((utf8[0] & 0x1F) << 6) | // Upper 5 bits of code (utf8[1] & 0x3F) // Lower 6 bits of code ); printf("Unicode point of letter %s = %d\n", utf8, c); } return 0; }