LogRus, но русский то поддержать не сложно? Почему в Linux я задаю локаль и получаю корректный результат, а хваленая винда не может?
Кстати, что ты имеешь в виду "по стандарту"? Мое решение
Поправлю: isalpha() не говорит, что за тип - они лишь подтверждает или нет, что символ классифицирован как буква.
Мне нужно делать приложение лишь с поддержкой русского (внутрикорпоративное ПО) и я обошел траблу простым созданием таблицы классов символов и ф-ии, которая их возвращает.
int char_class(char c)
{
static int class_map[256] =
{
// 0, 0, ..... 1, .... 2, ... 3. и т.п.
};
return class_map[0xff & c];
}
Просто и никаких заморочек на винду и STL (как ты намекаешь, если я правльно тебя понял).
Но, как говорится, осадок остался...
Меня в этой теме интересует именно, как правильно сказать винде, что программа работает с такой-то локалью. Пробовал определять LC_CTYPE и LC_ALL.