Программирование строк в UTF-8 локали
Привет всем.
Я тут угрузился проблемой русских строк в UTF-8 локали.
Так уже писать нельзя
tmp = strdup("Проба");
tmp1 = strndup(tmp, 3);
Потому что в tmp1 будет не "Про", а фиг него знает что.
strlen("Проба");
вернёт вовсе не 5.
Да, есть в текушей libc такой чудный вещь как wchar.h
и соответствующие рутины типа wcsdup и т.д. Но старые
программы теперь в глубокой жо..?
А если я хочу скажем в curses добавить полученный
мной через getch символ к строке, то как это сделать,
учитывая, что getch возвращает int, а строка имеет
типа w_chart *?
Как вообще теперь добавлять СИМВОЛ к СТРОКЕ? Раньше
было просто всегда работала конструкция вида:
char tmp[2];
char *str;
tmp[1] = '\0';
tmp[2] = 'А';
strcat(str, tmp);
Что делать сейчас?
--
С уважением, Виктор
Reply to: