Преобразование типов byte в string
- Войдите на сайт для отправки комментариев
Пт, 28/08/2015 - 09:22
Помогите с преобразованием типов данных.
Есть массив байтов {0x30, 0x31,0x32}
Как из этого массива получить строку "012"
Как то так - строки заканчиваются 0х00 и можно преобразовать простым приведением типов.
String myString = String((char*)byteArray);
Мне ее в порт не надо. Я делал
Но на экране какая то фигня. Хотя если просто текст в кавычках написать но нормально все отобрадается.
А так же просто, но наоборот можно, как то?
А так же просто, но наоборот можно, как то?
есть такая замечательная функция
char *itoa(int val, char *s, int radix)
преобразовывает int в строку. radix - основание системы счисления, 2, 10 или 16.
Если запустить этот код, то в терминале увидим повторяющиеся:
223301222
012223301222
А должно быть:
223301222
012
Это глюк компилятора или моя ошибка?
Если запустить этот код, то в терминале увидим повторяющиеся:
223301222
012223301222
А должно быть:
223301222
012
Это глюк компилятора или моя ошибка?
Вот лечение.
В конце каждого массива необходимо добавить ноль. Так компилятор понимает конец char*
Возможно, кому-нибудь пригодится.
Это не компилятор, это Си и все подобные языки.
Компилятор просто делает то, что обязан по стандарту.
И, кстати, не "конец char*", а "конец Си-строки". У указателя не может быть конца.
PS. И, кстати, ответ на вопрос был уже в первом сообщении темы.