Re: [GCC] iswupper(L'\x0416') == 0 ?
От: Zhendos  
Дата: 13.11.08 16:46
Оценка: 2 (1)
Здравствуйте, igna, Вы писали:

I>
I>    setlocale(LC_ALL, "ru_RU");
I>


I>Выводит 0. Почему? (0x0416 это код прописной буквы Ж.)


на linux если поменять на ru_RU.UTF-8 выводит 1

#include <cctype>
#include <clocale>
#include <iostream>
using namespace std;

int main()
{
    setlocale(LC_ALL, "ru_RU.UTF-8");
    cout << iswupper(L'\x0416') << '\n';
}
Re: [GCC] iswupper(L'\x0416') == 0 ?
От: Юрий Жмеренецкий ICQ 380412032
Дата: 09.11.08 10:50
Оценка: 1 (1)
Здравствуйте, igna, Вы писали:

I>
I>#include <cctype>
I>#include <clocale>
I>#include <iostream>
I>using namespace std;

I>int main()
I>{
I>    setlocale(LC_ALL, "ru_RU");
I>    cout << iswupper(L'\x0416') << '\n';
I>}
I>


I>Выводит 0. Почему? (0x0416 это код прописной буквы Ж.)


setlocale что возвращает? Второй параметр setlocale implementation-defined. Для VC + windows допустимыми являются "Russian_Russia" / "Russian_Russia.1251" / "rus" и т.п.
[GCC] iswupper(L'\x0416') == 0 ?
От: igna Россия  
Дата: 09.11.08 08:36
Оценка:
#include <cctype>
#include <clocale>
#include <iostream>
using namespace std;

int main()
{
    setlocale(LC_ALL, "ru_RU");
    cout << iswupper(L'\x0416') << '\n';
}


Выводит 0. Почему? (0x0416 это код прописной буквы Ж.)
Re[2]: [GCC] iswupper(L'\x0416') == 0 ?
От: igna Россия  
Дата: 10.11.08 10:20
Оценка:
Здравствуйте, Юрий Жмеренецкий, Вы писали:

ЮЖ>setlocale что возвращает? Второй параметр setlocale implementation-defined. Для VC + windows допустимыми являются "Russian_Russia" / "Russian_Russia.1251" / "rus" и т.п.


Возвращает 0 несмотря на то, что "ru_RU" должно быть корректным именем локали: здесь. Правда комманды locale, чтобы убедиться в этом, у меня почему-то нет. Использую cygwin.
Re: [GCC] iswupper(L'\x0416') == 0 ?
От: Roman Odaisky Украина  
Дата: 11.11.08 20:49
Оценка:
Здравствуйте, igna, Вы писали:

I> setlocale(LC_ALL, "ru_RU");

I> cout << iswupper(L'\x0416') << '\n';

А что, в другой локали буква «Ж» уже не будет прописной?
До последнего не верил в пирамиду Лебедева.
Re[2]: [GCC] iswupper(L'\x0416') == 0 ?
От: igna Россия  
Дата: 12.11.08 05:44
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, igna, Вы писали:


I>> setlocale(LC_ALL, "ru_RU");

I>> cout << iswupper(L'\x0416') << '\n';

RO>А что, в другой локали буква «Ж» уже не будет прописной?


Не знаю, а что, будет?

Для isupper этого конечно нельзя гарантировать, для iswupper вроде было бы можно, но где бы найти эту гарантию черным по белому?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.