C++ char массив: ошибка при копировании данных

У меня есть массив:

CHAR m_manuf[256];

Я пытаюсь скопировать значение в этот массив как:

m_manuf = "abacus";  //This shows error 

Я также попробовал этот вариант:

char abc[256] ="abacus";
m_manuf = abc; //Shows error as left value must be l-value

2 ответа

Решение

Вы не можете скопировать массив, как это, вместо того, чтобы сделать,

CHAR    m_manuf[256];
strcpy(m_manuf,"abacus" );

Или же

char * m_manuf = "abacus";

Или же

char abc[256] ="abacus";
strcpy(m_manuf,abc );

Примечание: лучший способ обработки массивов символов - использовать std::string,

Постоянный массив символов достаточно хорош для вас, так что вы идете с,

string tmp = "abacus";
char *new = tmp.c_str();

Или вам нужно изменить новый массив символов и константа не в порядке, а затем просто пойти с этим

char *new = &tmp[0];
Другие вопросы по тегам