Задать вопрос
@Zaher220
Software developer

Корректное преобразование char[] в System::String

const int len=117;
char str[len];
memcpy(str,somechararray,len);
System::String^ clistr = gcnew System::String(str);

В строке clistr после текста из somechararray появляются случайные символы.
Каким образом корректно преобразовать строку с фиксированной длинной в System::String без кракозябр в конце строки?
  • Вопрос задан
  • 5678 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
char str[len + 1];
memcpy(str,somechararray,len);
str[len] = 0;

Это если вы действительно хотите подстроку скопировать.
А вообще, у String же есть конструктор, принимающий указатель, позицию и длину. Почему вам сразу было бы не написать так:
System::String^ clistr = gcnew System::String(somechararray, 0, len);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы