0 / 0 / 0
Регистрация: 22.11.2021
Сообщений: 11
1

Перевод unsigned char в string. Ошибка!

25.11.2021, 18:36. Показов 462. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

перевожу unsigned char в string.

C
1
2
3
4
5
6
7
8
9
        unsigned char SO_byte[300];
    char temp[sizeof(SO_byte)];
    char temp_str[sizeof(SO_byte)];
    for (int i=0; i<sizeof(SO_byte); i++)
    {
        sprintf(temp,"%02x", SO_byte[i]);
        strcat(temp_str,temp);
    }  
    printf("## temp_str = %s , \n",temp_str);
Все вроде работает, выводится 16-ричная кодовая последовательность, но при выводе temp_str вначале строки вылезаю символы, а в конце строки 16-ричная непонятная последовательность, которой в SO_byte[300] в массиве нет.
Что не так делаю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2021, 18:36
Ответы с готовыми решениями:

Unsigned char to string
Привет всем. У меня полная непонятица unsigned char c = '1'; std::string ass((char*)c); ...

Конвертация string to unsigned char
День всем добрый! Каким образом можно произвести перевод значения переменной типа &quot;string&quot; в...

Преобразование string в unsigned char
Моя программа из текстового документа заносит данные в переменную line. Дальше моя задача эти...

std::string формата hex в unsigned char и обратно.
Доброго, все до очевидного просто, есть строка, где каждые два символа являются байтом: ...

4
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
25.11.2021, 18:48 2
lops, строка для hex должна быть в 2 раза больше, чем строка данных, плюс добавить место для терминального нуля.
0
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,617
25.11.2021, 18:50 3
Массив большего размера и строку пустую подготовить.
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
25.11.2021, 18:51 4
lops, как-то так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    const int size = 10;
    unsigned char SO_byte[size+1] = "01234";
    char temp_str[size*2+1];
    for (int i = 0; i < size; i++)
    {
        sprintf(&temp_str[i*2], "%02x", SO_byte[i]);
    }
    printf("## temp_str = %s , \n", temp_str);
}
0
0 / 0 / 0
Регистрация: 22.11.2021
Сообщений: 11
29.11.2021, 08:56  [ТС] 5
Большое спасибо. Все заработало!
0
29.11.2021, 08:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2021, 08:56
Помогаю со студенческими работами здесь

Преобразовать const unsigned char* в std::string (или _bstr_t )
Здравствуйте старшие товарищи! Есть функция, которая возвращает результат типа const unsigned...

Преобразовать строку String в массив #define byte_t unsigned char и обратно
Собственно танцы с бубном долгое время. Подскажите пожалуйста, как правильно и оптимально это...

Перевод Unsigned char в двоичный вид с использованием побитовых операций
Вводится с клавиатуры переменная типа unsigned char, с помощью побитовых операций переводится в...

Приведение типов unsigned char[2] to unsigned char [64]
Добрый день! Подскажите пожалуйста, как поступить. Есть простая функция main int main() { ...

String to unsigned char[]
Всем привет. Что-то никак не могу придумать как преобразовать значения из Edit'ов в массив...

Ansi String в UNSIGNED char
Доброго времени суток. Надо преобразовать Ansi String в unsigned char. В обычный char...

Строка string в unsigned char
Добрый день. Есть строка string с неким перечислением символов, надо его разобрать и передать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru