Я работаю над кодом C и изо всех сил пытаюсь найти способ завершить строку после определенного количества символов. Например, мне нужно завершить строку data
после 3 символов. Если это простая строка ASCII, я могу сделать что-то вроде
data[3] = 0;
Но в моем случае любой из символов может быть многобайтным, например È или À. Как лучше всего завершить такую строку после заданного количества символов?
ОБНОВИТЬ:
В принципе:
char s_mon[7];
setlocale(LC_ALL, "");
strftime(s_mon, 7, "%b", tick_time);
Текущий язык — французский. Месяц хранится как "févr.". Нужно, чтобы это было «fév», но оно должно быть универсальным, чтобы такие записи, как «mars», также можно было сократить до 3 символов.
data
- person Ed Heal   schedule 13.02.2017È
,À
не требуют мультибайта. С 8859-1 это просто коды 200 и 192. Что это за символ набор, который вы используете? Как код вообще читал текст? - person chux - Reinstate Monica   schedule 13.02.2017