Перейти к содержанию

Соединить два массива char значений на C++


Рекомендуемые сообщения

Всем привет!

Вторые сутки не удаётся на C++ соединить (склеить) два массива char значений (part+session_key) в один char массив (result).

Где-то пробел в понимании  :(

Код:

  Показать контент

 

Ожидаемый результат (part+session_key):

  Показать контент

 

А выходит:

  Показать контент

 

Подскажите, пожалуйста, как правильно объединить массивы без потери значений?

Ссылка на комментарий
Поделиться на другие сайты

int partSize = sizeof(part) * sizeof(part[0]);
int sessionKeySize = sizeof(session_key) * sizeof(session_key[0]);
int resultSize = partSize + sessionKeySize;
char *result = new char[resultSize];
memcpy(result, part, partSize);
memcpy(result + partSize, session_key, sessionKeySize);

for (int i = 0; i < resultSize; i++) {
	printf("%02X%c", result[i], ':');
}

Как-то так...

Только это отнюдь не низкоуровневое программирование, посему тему переношу в правильный раздел.

Ссылка на комментарий
Поделиться на другие сайты

 

  В 24.06.2017 в 05:49, elvis66666 сказал:

чуть короче

Показать  

Спасибо за совет, но такой способ не подходит, т.к. на выходе получается уже другой тип данных, char превращается в string, а нужно, что бы итог оставался в char, т.к. дальше планируется использовать функцию send, которая требует именно char:

  Показать контент

Пример Xipho вполне подходит, только необходимо добавить -1 к переменным размера, что бы между соединяемыми данными не вклеивался нулевой байт (41:00:42)

int partSize = sizeof(part) * sizeof(part[0])-1;
int sessionKeySize = sizeof(session_key) * sizeof(session_key[0])-1;

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.