- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
void UPStr(char *str)
{
while (*str)
{
switch (*str)
{
case 'а': *str = 'А'; break;
case 'б': *str = 'Б'; break;
case 'в': *str = 'В'; break;
case 'г': *str = 'Г'; break;
case 'д': *str = 'Д'; break;
case 'е': *str = 'Е'; break;
case 'ё': *str = 'Ё'; break;
case 'ж': *str = 'Ж'; break;
case 'з': *str = 'З'; break;
case 'и': *str = 'И'; break;
case 'й': *str = 'Й'; break;
case 'к': *str = 'К'; break;
case 'л': *str = 'Л'; break;
case 'м': *str = 'М'; break;
case 'н': *str = 'Н'; break;
case 'о': *str = 'О'; break;
case 'п': *str = 'П'; break;
case 'р': *str = 'Р'; break;
case 'с': *str = 'С'; break;
case 'т': *str = 'Т'; break;
case 'у': *str = 'У'; break;
case 'ф': *str = 'Ф'; break;
case 'х': *str = 'Х'; break;
case 'ц': *str = 'Ц'; break;
case 'ч': *str = 'Ч'; break;
case 'ш': *str = 'Ш'; break;
case 'щ': *str = 'Щ'; break;
case 'ъ': *str = 'Ъ'; break;
case 'ы': *str = 'Ы'; break;
case 'ь': *str = 'Ь'; break;
case 'э': *str = 'Э'; break;
case 'ю': *str = 'Ю'; break;
case 'я': *str = 'Я'; break;
case 'a': *str = 'A'; break;
case 'b': *str = 'B'; break;
case 'c': *str = 'C'; break;
case 'd': *str = 'D'; break;
case 'e': *str = 'E'; break;
case 'f': *str = 'F'; break;
case 'g': *str = 'G'; break;
case 'h': *str = 'H'; break;
case 'i': *str = 'I'; break;
case 'j': *str = 'J'; break;
case 'k': *str = 'K'; break;
case 'l': *str = 'L'; break;
case 'm': *str = 'M'; break;
case 'n': *str = 'N'; break;
case 'o': *str = 'O'; break;
case 'p': *str = 'P'; break;
case 'q': *str = 'Q'; break;
case 'r': *str = 'R'; break;
case 's': *str = 'S'; break;
case 't': *str = 'T'; break;
case 'u': *str = 'U'; break;
case 'v': *str = 'V'; break;
case 'w': *str = 'W'; break;
case 'x': *str = 'X'; break;
case 'y': *str = 'Y'; break;
case 'z': *str = 'Z'; break;
}
++str;
}
}
Xom94ok 15.05.2015 18:26 # +8
inkanus-gray 15.05.2015 18:48 # +3
Stertor 15.05.2015 21:06 # 0
inkanus-gray 16.05.2015 13:10 # 0
Для UTF-8 есть mbctoupper, а для UTF-16/UCS-2 (кто знает точно, для какой из них?) — towupper. Но здесь, как я понимаю, кодировка однобайтная. Значит, либо придётся либо использовать API операционной системы (в Windows уже упомянутую CharUpper, которая в качестве параметра кодировку не принимает, поэтому её результат зависит от локали, установленной у клиента) либо тащить с собой дополнительную библиотеку (iconv или типа того).
В любом случае даже приведённый код можно было сократить в два раза с помощью toupper.
bormand 16.05.2015 13:20 # +1
inkanus-gray 16.05.2015 13:22 # +2
P.S. Это замечание к данному коду не относится, просто наболело.
Dummy00001 18.05.2015 13:18 # 0
если у тебя нет кастомеров на каких Фиджи, и если ты не грандиозный педант, то обновлять можно и раз в 2-3 года.
история виндовых апдейтов:
https://support.microsoft.com/en-us/kb/2981580 (2014)
https://support.microsoft.com/en-us/kb/2904266 (2013)
https://support.microsoft.com/en-us/kb/2779562 (2012)
https://support.microsoft.com/en-us/kb/2633952 (<--- 2011, последний раз когда в Европе что-то менялось.)
inkanus-gray 18.05.2015 13:25 # 0
P.S. Не хочу участвовать в политических дебатах, но часовые пояса обсудить нужно.
Dummy00001 18.05.2015 13:47 # 0
я не то что бы сильно слежу за темой - может еще чего и пропустил - просто время от времени в виндовые апдейты поглядываю.
> но часовые пояса обсудить нужно.
меняют часто только те страны для которых это больших проблем не создаёт.
большие страны - таже Россия - часто этого делать не будет потому что слишком большой эффект у изменения. и как правило самые подверженые "временным" проблемам системы - это финансовые, т.к. все повально всё ещё в местном времени ведут учёт переводов и платежей.
inkanus-gray 18.05.2015 15:01 # 0
В 2011-м году говорили, что реформа будет последней и больше ничего переводить не будем. Прошло три года и снова реформа.
Dummy00001 18.05.2015 15:59 # +2
defecate-plusplus 16.05.2015 14:16 # 0
либо не пользоваться С, а пользоваться С++
inkanus-gray 16.05.2015 14:49 # +2
Vasiliy 16.05.2015 15:20 # 0
bormand 16.05.2015 15:46 # +2
Vasiliy 16.05.2015 16:05 # −1
inkanus-gray 16.05.2015 16:07 # +9
> 2х байтовая
Кажется, сегодня чей-то кругозор должен расшириться...
kegdan 16.05.2015 16:25 # 0
inkanus-gray 16.05.2015 16:38 # 0
kegdan 16.05.2015 17:46 # 0
Stallman 16.05.2015 18:45 # 0
vr8h 17.05.2015 08:30 # 0
#include <locale>
std::locale rus("russia_russia");
std::locale::global(rus);
char b = 'б';
std::toupper(b, rus);
bormand 17.05.2015 08:53 # 0
- в винде и в линухе совершенно разные названия локалей;
- 'б' не всегда помещается в char;
- std::toupper() бесполезен для multibyte кодировок.
Так что без бутылки буста тут не разобраться ;(
defecate-plusplus 17.05.2015 13:12 # +2
- для альтернативных ОС мультибайт надо переводить в вайд, т.к. врядли только апперкейсом ограничится
- std::toupper(std::locale) работает в т.ч. и с вайд
- перевод utf8<->вайд есть в самом с++11 уже (т.к. слямзили с буста)
bormand 17.05.2015 15:06 # +1
Правда, даже с вайдом немцы со своим SS соснут. Ну да хрен с ними, всё равно задача ОПа только для русских.
> исходный пост читали
Не барское это дело, исходные посты читать.
inkanus-gray 17.05.2015 15:38 # +3
И наоборот, насчёт того, преобразовывать ß в SS или оставить, как есть, единого мнения нет.
Кстати, не все редакции журналов признали реформу 1996 года, в результате которой появилось сочетание SSS и пришлось соснуть ещё раз.
bakagaijin 18.05.2015 14:34 # +1
inkanus-gray 18.05.2015 14:58 # 0
В сраной гермашке, как и раньше, нужен словарь. Только теперь словарь нужно обновить, потому что ß теперь пишется чуть-чуть реже.
1024-- 18.05.2015 15:11 # 0
inkanus-gray 18.05.2015 15:15 # +1
P.S. В названиях улиц есть. Paßstraße после реформы 1996 называется Passstraße.
https://commons.wikimedia.org/wiki/File:RechtschreibreformBeiStrassennamen. jpg
inkanus-gray 18.05.2015 15:22 # +1
Schlußstrich → Schlussstrich.
«Заключительный штрих» от Schluẞ→Schluss — «заключение» и Strich — «черта».
1024-- 18.05.2015 15:33 # +2
Чему ещё я удивляюсь...
bakagaijin 19.05.2015 18:42 # 0
inkanus-gray 18.05.2015 15:43 # 0
Когда в ходу была КОИ-7, компьютерные проблемы вызывали даже строчные буквы, ПОЭТОМУ ВСЕ ПИСАЛИ КАПСОМ. И ЭТО НЕ СЧИТАЛОСЬ ЭКСПРЕССИВНО ОКРАШЕННОЙ РЕЧЬЮ. ЗАТО СКОЛЬКО БАЙТ ЭКОНОМИЛОСЬ; ШИФТ ПЕРЕКЛЮЧАЛ С КИРИЛЛИЦЫ НА ЛАТИНИЦУ, А НЕ СО СТРОЧНЫХ НА ЗАГЛАВНЫЕ. КРАСОТА!
К чему это я? Компьютерные проблемы — временные. Если в 90-х винчестер на гигабайт был пределом мечтаний, то сейчас у обычного школьника в мобильном телефоне карта памяти больше.
*****
Средство для розжига: в турецком языке есть буквы İ («и» заглавная с точкой) и ı («и» строчная без точки). Из-за этой мелочи таблица соответствия заглавных строчным не соответствует европейской. Домашнее задание: предложите реформу турецкой орфографии, чтобы устранить компьютерную проблему.
1024-- 18.05.2015 15:56 # +2
Да выпилить к чертям ненужную букву!
Вот у украинцев зачем-то три буквы "и" и две буквы "е", если не ошибаюсь. Зачем они? Выпилить, как в русском выпилили лишние буквы.
У нас йэщо остались как минимум буквы тсэ, йэ, йо, йу, йа, которыйэ можно спокойно выпилить. Ну или выпилить э, а йэ оставить. Йэщо мошно выпилить букву, на которуйу начинайэтсьа слово "шопа". Тоше не очэнь нушная буква, всьо равно йэйо мошно спутать с буквой "ш", а так искусствьэнная гранитса будьэт размыта.
greenx 18.05.2015 19:03 # 0
greenx 18.05.2015 19:06 # 0
doloy inertsiu mishlenia!
Xom94ok 18.05.2015 19:11 # +2
roman-kashitsyn 18.05.2015 19:26 # +1
kegdan 18.05.2015 20:16 # +1
bakagaijin 19.05.2015 18:45 # +1
1024-- 19.05.2015 18:54 # +1
О да, теперь вероятность вычислить Вас возросла с примерно 5.99e-9 до 1.06e-7*.
ОЛОЛО ДЕАНОН
_____________________
* некоторые факторы упущены, реальные вероятности могут быть гораздо выше
bakagaijin 19.05.2015 21:01 # 0
Vasiliy 20.05.2015 12:12 # 0
одна из фоточек которуй выдал гугл по bakagaijin.
Признавайся ты какая из тян.
bakagaijin 20.05.2015 14:55 # 0
kegdan 20.05.2015 16:54 # 0
tirinox 16.05.2015 09:59 # 0
bormand 16.05.2015 10:54 # 0
tirinox 16.05.2015 12:06 # 0
inkanus-gray 16.05.2015 13:11 # +3
guest 16.05.2015 11:01 # 0
TarasB 18.05.2015 17:15 # 0
bormand 18.05.2015 17:25 # 0
Stertor 19.05.2015 21:30 # −1
Stallman 20.05.2015 01:35 # 0