2016-01-25 33 views
0

我有一個數組:C++字符數組:錯誤而將數據複製

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 
+0

不能* *分配到一個數組,但你可以*副本*它。但是如果你用C++編程,爲什麼不使用['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string)? –

+0

你也可以做一些像char * m_manuf =「abacus」;'可能。 – CollinD

+0

@CollinD有一個非const指針指向字符串文字通常是一個壞主意。 –

回答

2

你不能'複製一個這樣的數組,而不是你可以這樣做,

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

或者

char * m_manuf = "abacus"; 

或者

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

注:更好的方式來處理字符數組使用的std :: string,

0

常量字符數組是對你而言足夠好,所以你一起去,

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

,或者您需要修改新的字符數組和常數是不正常,則只要進入這個

char *new = &tmp[0];