[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Программирование строк в 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: