Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 28.06.2017, 05:03   #131
bugaboo
Форумчанин
 
Регистрация: 18.06.2017
Сообщений: 55
Репутация: 10
По умолчанию

Переписал вот так, всё работает
Цитата:
#include <iostream>
using namespace std;
int main()
{
char* a = "blabla";
auto la = strlen(a);
char* b = new char[la + 1];
char j;
for (j = 0; j < la; j++) b[j] = toupper(a[j]);
b[j] = 0;
auto lb = strlen(b);
char* c = new char[la + lb + 1];
strcpy(c, a);
strcat(c + la, b);
delete[] b;
cout << c << endl;
delete[] c;
system("pause");
return 0;
}
Название: Безымянный.jpg
Просмотров: 52

Размер: 14.9 Кб
Цитата:
Сообщение от Croessmah Посмотреть сообщение
Никого не напрягают, а даже наоборот, делают код проще, понятнее, более доступным для оптимизаций и т.д.
Ну я сделаю вид, что согласился, но у меня там не constы и просто уточнил, нужно ли приделывать дополнительные constы. Потому что я не до конца понимаю, как этот код работает.
Цитата:
Сообщение от Croessmah Посмотреть сообщение
#define _CRT_SECURE_NO_WARNINGS
//...
ну это понятно, но хотелось бы обойтись без этого...
Код:
strcat(c + la, b);
такого удара я честно не ожидал)) и всё-таки щас попробую на спарке ))

Последний раз редактировалось bugaboo; 28.06.2017 в 05:11.
bugaboo вне форума   Ответить с цитированием
Старый 28.06.2017, 05:17   #132
Croessmah
Вредный кошак
Профессионал
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
Репутация: 379
По умолчанию

Цитата:
Сообщение от bugaboo Посмотреть сообщение
Ну я сделаю вид, что согласился, но у меня там не constы и просто уточнил, нужно ли приделывать дополнительные constы
Это не дополнительные const'ы. Они обязательны для данного случая, согласно стандарту языка.

Цитата:
Сообщение от bugaboo Посмотреть сообщение
ну это понятно, но хотелось бы обойтись без этого...
Тогда strcpy_s, но функции *_s непереносимы. Так что код сразу будет не портабелен.

Последний раз редактировалось Croessmah; 28.06.2017 в 05:25.
Croessmah вне форума   Ответить с цитированием
Старый 28.06.2017, 05:28   #133
alexzk
Участник клуба
 
Регистрация: 12.04.2017
Сообщений: 889
Репутация: 172
По умолчанию

Цитата:
Сообщение от bugaboo Посмотреть сообщение

Ну я сделаю вид, что согласился, но у меня там не constы и просто уточнил, нужно ли приделывать дополнительные constы. Потому что я не до конца понимаю, как этот код работает.

ну это понятно, но хотелось бы обойтись без этого...
Код:
strcat(c + la, b);
такого удара я честно не ожидал)) и всё-таки щас попробую на спарке ))
Замените уже все strcat на strcpy. В этом варианте кода мы уже посчитали указатели и длины (c + la), т.о. можно тупо копировать (strcpy), strcat еще делает проверки.
alexzk вне форума   Ответить с цитированием
Старый 28.06.2017, 05:30   #134
Croessmah
Вредный кошак
Профессионал
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
Репутация: 379
По умолчанию

Цитата:
Сообщение от bugaboo Посмотреть сообщение
Переписал вот так, всё работает
Чё т на рафу похоже. )))
Croessmah вне форума   Ответить с цитированием
Старый 28.06.2017, 05:32   #135
alexzk
Участник клуба
 
Регистрация: 12.04.2017
Сообщений: 889
Репутация: 172
По умолчанию

...я как-то упустил момент,а причем тут спарк и биг-эндиан?

Последний раз редактировалось alexzk; 28.06.2017 в 05:35.
alexzk вне форума   Ответить с цитированием
Старый 28.06.2017, 05:37   #136
Croessmah
Вредный кошак
Профессионал
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
Репутация: 379
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
а причем тут спарк и биг-эндиан?
Человеку недавно на другом форуме объясняли о порядке байт.
Видимо, он что-то не так понял и теперь у него небольшая каша.
Croessmah вне форума   Ответить с цитированием
Старый 28.06.2017, 05:44   #137
alexzk
Участник клуба
 
Регистрация: 12.04.2017
Сообщений: 889
Репутация: 172
По умолчанию

...а я статью про малера Шмеля прочел Ток у меня вывод немного другой))))) - я убедился, что хранить / передавать данные в json и прочих xml верх безумства. Используйте google protobuf :D
alexzk вне форума   Ответить с цитированием
Старый 28.06.2017, 05:58   #138
bugaboo
Форумчанин
 
Регистрация: 18.06.2017
Сообщений: 55
Репутация: 10
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Цитата:
Сообщение от alexzk
а причем тут спарк и биг-эндиан?
Человеку недавно на другом форуме объясняли о порядке байт.
Видимо, он что-то не так понял и теперь у него небольшая каша.
Примерно так и есть. Наверно, неправильно представлял себе способ хранения массивов в случае с big-endian. Проверил на спарке, всё работает:
Нажмите на изображение для увеличения
Название: sparc.jpg
Просмотров: 137
Размер:	55.4 Кб
ID:	88770
Кстати, его старый компилятор не переварил auto.

Последний раз редактировалось bugaboo; 28.06.2017 в 06:01.
bugaboo вне форума   Ответить с цитированием
Старый 28.06.2017, 06:01   #139
alexzk
Участник клуба
 
Регистрация: 12.04.2017
Сообщений: 889
Репутация: 172
По умолчанию

Цитата:
Сообщение от bugaboo Посмотреть сообщение
Примерно так и есть. Наверно, неправильно представлял себе способ хранения массивов в случае с big-endian. Проверил на спарке, всё работает:
Вложение 88770
Кстати, его старый компилятор не переварил auto.
чо аж такой старый?! ...можно попробовать ключ
--std=c++11
alexzk вне форума   Ответить с цитированием
Старый 28.06.2017, 06:08   #140
Croessmah
Вредный кошак
Профессионал
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
Репутация: 379
По умолчанию

Цитата:
Сообщение от bugaboo Посмотреть сообщение
Примерно так и есть.
До тех пор, пока работаете с многобайтными числами как с числами, а не как с сырыми байтами, отличия не заметны. Ну или пока с сетью/устройствами не работаете.
Croessmah вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


01:11.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.