Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2017, 09:19   #61
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
utf-8 или wchar_t (16) строка, путем проверки нулей
До первого китайского текста...
waleri вне форума Ответить с цитированием
Старый 22.06.2017, 10:57   #62
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
До первого китайского текста...
Его там по условию задачи быть не должно - ток английский, но иногда пишут как 2 байта, иногда как 1. ...но вообще да, это метатеги jpeg я читаю, там кошмар...каждая программа пишет, как хочет. А iCloud так ваще - меняет порядок байт на биг-енд и принудительно делает 2 байта, при закачке туда файла. Вопщем вариантов там море - длины не проставляются, или 1 прога ставит в символах, другая в байтах и т.д. Ток эвристики.
..почти все libjpeg корректно отрабатывает, кроме случая, когда порядок байт не совпадает с процом + текст 2 байта )) - как раз такое iCloud и делает (для интелов так выходит).

Последний раз редактировалось alexzk; 22.06.2017 в 11:03.
alexzk вне форума Ответить с цитированием
Старый 22.06.2017, 11:50   #63
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
и есть результат стрикт-алиасинг?
В данном случае да, если компилятор так сделает. А в общем случае, значение может быть в регистре и проверять его правильность никто не будет, т.к. оно не изменялось с точки зрения компилятора. Это позволяет лучше оптимизировать код.
Croessmah вне форума Ответить с цитированием
Старый 27.06.2017, 19:40   #64
bugaboo
Пользователь
 
Регистрация: 18.06.2017
Сообщений: 55
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
...кароче вывод - пользуйтесь библиотекой и не изобретайте велики. Библиотеки уже под проц оптимизированы.
не нашел библиотеки для сложения C-строк. Нашёл интересную статью
http://local.joelonsoftware.com/wiki...B2%D0%B0%D0%BC
bugaboo вне форума Ответить с цитированием
Старый 27.06.2017, 20:14   #65
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Что за спам? Вы не нашли strcat и иже с ней?
p51x вне форума Ответить с цитированием
Старый 27.06.2017, 20:22   #66
bugaboo
Пользователь
 
Регистрация: 18.06.2017
Сообщений: 55
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что за спам?
Я просто дал ссылку на статью, которая заинтересовала.

Цитата:
Сообщение от p51x Посмотреть сообщение
Вы не нашли strcat и иже с ней?
Всё это - мутные левые функции, заставляющие выделять массивы определённого размера. Если бы всё было так просто, тема не была бы так актуальна, и люди бы не писали Mystrcatы.
bugaboo вне форума Ответить с цитированием
Старый 27.06.2017, 20:42   #67
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
Всё это - мутные левые функции
вообще-то они стандартные

Цитата:
заставляющие выделять массивы определённого размера
А как вы хотите по другому? Кто-то память всеравно должен выделить? Берите std::string.

Цитата:
Если бы всё было так просто, тема не была бы так актуальна, и люди бы не писали Mystrcatы.
О, вы не представляете как живо в людях велосипедописательство. Я видел проекты, где люди написали свои map, set, pair, ... почему? да просто так...
p51x вне форума Ответить с цитированием
Старый 27.06.2017, 20:53   #68
bugaboo
Пользователь
 
Регистрация: 18.06.2017
Сообщений: 55
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
вообще-то они стандартные
да, их навалом, и у всех - как минимум один недостаток (это и описано в статье)
Цитата:
Сообщение от p51x Посмотреть сообщение
А как вы хотите по другому? Кто-то память всеравно должен выделить? Берите std::string.
я и привёл грубый пример, где память выделяется нужного размера (а не больше и не меньше, чем нужно) внутри функции конкантенации. Потом пример усовершенствовали, но пока получилось довольно длинно, и есть ещё неясности. По поводу string - вопрос в теме стоит о конкантенации массивов, в частности char*, а string - это совсем другой тип, который, к тому же, требует библиотеку, и его достоинства/недостатки - предмет для совсем другой темы.
Цитата:
Сообщение от p51x Посмотреть сообщение
О, вы не представляете как живо в людях велосипедописательство.
В данном случае для него есть почва. Потому что универсальный, для всех удобный велосипед так никто и не изобрёл.

Последний раз редактировалось bugaboo; 27.06.2017 в 20:58.
bugaboo вне форума Ответить с цитированием
Старый 27.06.2017, 21:22   #69
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

1. Какая же здесь почва?
2. Что вы понимаете под универсальный и удобный? Способ стандартный - кто-то должен выделить память и скопировать обе строки.
p51x вне форума Ответить с цитированием
Старый 27.06.2017, 21:35   #70
bugaboo
Пользователь
 
Регистрация: 18.06.2017
Сообщений: 55
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
1. Какая же здесь почва?
2. Что вы понимаете под универсальный и удобный? Способ стандартный - кто-то должен выделить память и скопировать обе строки.
Вы хотя бы взгляните на ту статью! Её писал профессионал, и в самом начале указал на 2 существенных недостатка strcat (и т.п.) и вообще C-строк.
Цитата:
Этот код использует алгоритм маляра Шлемеля.
Цитата:
Код:
 char bigString[1000];     /* Никогда не знаешь сколько выделить... */
 bigString[0] = '\0';
 strcat(bigString,"Вася, ");
 strcat(bigString,"Петя, ");
 strcat(bigString,"Боря, ");
 strcat(bigString,"Саша ");
bugaboo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MMX сложить два числа gansm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 13 29.10.2010 05:16
как сложить два числа с плавающей точкой forsy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 29.03.2010 02:15
Макрос: сложить два числа белочка Microsoft Office Excel 6 23.12.2009 22:02
Сложить два числа и вывести результат на экран We1c0m3 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.05.2009 11:41
Сложить два числа iwaniwan Win Api 3 23.04.2009 06:27