@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 без кракозябр в конце строки?
  • Вопрос задан
  • 5653 просмотра
Решения вопроса 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);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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