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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Купить рекламу на форуме - 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