2017-01-26 18 views
0

Я новичок в мире C, так что несите меня. И я искал высоко и низко для ответа на этот вопрос, но еще не понял его.C: Использование шестнадцатеричного представления UTF-8 (например, Euro)

Я пытаюсь ввести и вывести, например, символ евро (расширенное значение символа). Я хочу использовать шестнадцатеричные байтовые комбинации. Для евро это: 0xE2, 0x82, 0xAC. Я понимаю, что в C++ вы можете просто использовать \ u20ac, чего нет в C.

Я попытался назначить значения hex для int, но это не сработало для меня. Я также попытался использовать десятичное значение символа евро.

Идея моей программы - принять пользовательский ввод (например, € 100) и преобразовать его в другую валюту. Таким образом, дифференциация символов валюты является моей главной проблемой. Есть ли другой способ сделать это, чем то, что я пробовал?

+0

http://en.cppreference.com/w/c/language/string_literal, 'u8 "€"' , – Stargateur

+0

Вы также можете использовать '\ u20ac' в C. Кто сказал, что не можете? –

+0

Я попытался использовать его, и он выбросил ошибку (ошибка C99 или что-то еще). Было ли какое-то исследование, и кто-то где-то сказал, что это для C++ – pmcg521

ответ

1

В основном может быть изображена с помощью 3 char.

Итак, вы можете сделать это вот так.

char str[] = { 0xE2, 0x82, 0xAC, 0x00 }; 
printf("str: \"%s\"\n", str); 

Выход:

ул: "€"

+0

Ну, это было менее сложно, чем я думал. Огромное спасибо – pmcg521