Как получить код кириллицы?

199
18 июня 2018, 17:30

Не могу конвертировать кириллицу в числовой код.

#include <stdio.h>
int main(void)
{
    char sim = 'Q';
    int kod = (int)sim;
    printf ("%d\n", kod);
}

С помощью данного кода получается получить код только латиницы, при вводе кириллицы компилятор выдает ошибку:

Test.c: In function 'main':
Test.c:5:13: warning: multi-character character constant [-Wmultichar]
   char sim = '╨░';
         ^~~~
Test.c:5:13: warning: overflow in implicit constant conversion [-Woverflow]
Answer 1

вам нужно сохранять переменные в типах wchar_t и wint_t. Примерчик:

#include <stdio.h>
#include <errno.h>
#include <wchar.h>
#include <locale.h>
int main(void) {
    if (! setlocale(LC_CTYPE, "")) {
        exit(1)
    }
    printf("%lc, %lc, %ls\n", (wint_t)9213, (wchar_t)"ваш символ в юникоде, размер 2 char"," строка в юникоде");
}

вот наглядный пример как это работает с кодом автора.

Answer 2

в продолжение, напишу тут: вот простенький пример как преобразить данные кодировок в тип wchar_t, надеюсь поможет, и даст точку с чего начать.

#include <iconv.h>
iconv_t cd;
char out[9*2];
wchar_t in[9*2+1] = "ваш текст";
size_t inl = sizeof(in), outl = sizeof(out);
cd = iconv_open("utf-8", "wchar_t");
iconv(cd, (char **)&in, &inl, &out, &outl);
iconv_close(cd)
READ ALSO
Как изменить значение path через javascript?

Как изменить значение path через javascript?

Есть следующий кусок кода:

209
клиент серверный запрос

клиент серверный запрос

отправляю пользователю сообщение

216
Ошибка при добавлении рекламы

Ошибка при добавлении рекламы

Работаю в rhino, пытаюсь создать виджет с рекламой от гугла, но что-то идёт не так и появляется ошибка comgoogle

180
Как убрать фигурные скобки на выходе?

Как убрать фигурные скобки на выходе?

При response получаю объект { "usd": 0 }Как мне из него получить строку 0 usd?

179