Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод кирилицы в нижний регистр C++, без STL библиотек 
:(
    Опции темы
Alca
Дата 2.2.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



bsa, ok

Добавлено через 3 минуты и 43 секунды
А если текущий язык украинский?

Добавлено через 4 минуты и 8 секунд
Для каждого языка свою локаль задавать?


--------------------
PM WWW ICQ Skype Jabber   Вверх
bsa
Дата 2.2.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Если используешь wchar_t, то проблемы могут возникнуть только с редкими языками и, возможно, китайский с японским. Т.е. с теми, чьи символы не помещаются в 16 разрядов (в windows sizeof(wchar_t) == 2).

Добавлено через 58 секунд
http://forum.vingrad.ru/index.php?showtopi...t&p=2086699
PM   Вверх
TupDub
Дата 2.2.2010, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



bsa, 
Код

TupDub, ты разницу между tolower() и towlower() заметить можешь?

могу конечно... smile )) Напишу ещё раз: я не под студией, у меня просто нет такой функции towlower

У меня по-прежнему не работает этот кусок... 
 
Код

setlocale(LC_ALL, "");
 char str[] = "Рыба";
 str[0]=tolower(str[0]);
 printf(" %s \n", str);

Народ, я пытаюсь сделать так ещё... 
Код

str[0] = (unsigned char)str[0] - 256 -32;

Но вместо буквы р получаю букву Ё. подозреваю, что там с битами что-то надо сделать... но как ??? 

PM   Вверх
bsa
Дата 2.2.2010, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



TupDub, тогда мои тебе сочувствия. Меняй стандартную библиотеку С на ту, что поддерживает C99. И не парь мозг себе попытками сделать код рабочим, так как кириллица имеет размер 2 байта в UTF-8! Сделай прикола ради printf("%d\n", sizeof(str));
PM   Вверх
artsb
Дата 2.2.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 4
Всего: 64



Код

char bufRussian[500];

char* ToRussian(const char* text) {
 CharToOem(text, bufRussian);
 return bufRussian;
}

int main(int argc, char* argv[])
{
    setlocale(LC_ALL,"Russian");
    char str[] = "Рыбка";
    std::cout << ToRussian(str) << std::endl;
    str[0]=tolower(str[0]);
    std::cout << ToRussian(str);
    getch();
    return 0;
}



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
bsa
Дата 2.2.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



artsb, это что было? Ты надеюсь понимаешь, что у ТС не Windows? Потому что под Windows и так есть towlower().
PM   Вверх
artsb
Дата 2.2.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 4
Всего: 64



Цитата(bsa @  2.2.2010,  15:43 Найти цитируемый пост)
что у ТС не Windows

Что-то не заметил где это написано  smile

Добавлено @ 15:48
А что у него?

Добавлено @ 15:49
Для Unix вроде как используется так:
Код

setlocale(LC_ALL,"ru_RU");


Добавлено @ 15:51
Цитата(artsb @  2.2.2010,  15:48 Найти цитируемый пост)
А что у него?

Уже нашёл smile

Добавлено @ 15:55
Цитата(bsa @  2.2.2010,  15:43 Найти цитируемый пост)
Потому что под Windows и так есть towlower(). 

А у меня и с tolower работает (код выше на этой странице).

Добавлено @ 15:59
А вот CharToOem скорее всего у него нет.

Это сообщение отредактировал(а) artsb - 2.2.2010, 16:00


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
bsa
Дата 2.2.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(artsb @  2.2.2010,  15:48 Найти цитируемый пост)
А у меня и с tolower работает (код выше на этой странице).
Работает потому что у тебя кодировка однобайтная. Была бы UTF-8, как у ТС, то не работало бы.

PM   Вверх
artsb
Дата 2.2.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 4
Всего: 64



Цитата(bsa @  2.2.2010,  16:02 Найти цитируемый пост)
Работает потому что у тебя кодировка однобайтная. Была бы UTF-8, как у ТС, то не работало бы.

Ясно. Спс.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
TupDub
Дата 2.2.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Спасибо народ за сочувтвие ... буду биться дальше  smile 

PM   Вверх
artsb
Дата 2.2.2010, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 4
Всего: 64



TupDub, а почему вы не хотите юзать STL? tolower


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
bsa
Дата 2.2.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



TupDub, интересно, а почему у тебя нет towlower? в убунте он есть.
100% рабочий под Ubuntu 9.10 код:
Код
#include <locale.h>
#include <wctype.h>
#include <stdio.h>
#include <wchar.h>

int main()
{
        setlocale(LC_ALL, "");
        wchar_t str[] = L"Рыба";
        str[0] = towlower(str[0]);
        printf("%S\n", str);
        return 0;
}

PM   Вверх
zim22
Дата 2.2.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(artsb @  2.2.2010,  15:41 Найти цитируемый пост)
а почему вы не хотите юзать STL?

а смысл от STL? всё-равно фунция tolower вызывается.


--------------------
PM MAIL   Вверх
artsb
Дата 2.2.2010, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 4
Всего: 64



Цитата(zim22 @  2.2.2010,  16:45 Найти цитируемый пост)
а смысл от STL? всё-равно фунция tolower вызывается. 

А я уже понял. ТС юзает чистый С...

Добавлено через 2 минуты и 55 секунд
Цитата(bsa @  2.2.2010,  16:45 Найти цитируемый пост)
в убунте он есть.

Ага. towlower


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0609 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.