2015-09-13 156 views
1

我有一個問題,將字符串文字分配給char的數組。這是我的代碼:無法將字符串文字分配給字符數組

#include <iostream> 

using namespace std; 
struct CandyBar{ 
    char brand[20]; 
    double weight; 
    int calories; 
}; 
int main() 
{ 
    char a[20] = "Mocha Munch"; 
    cout << a; 
    CandyBar snack; 
    snack.brand = "Mocha Munch"; 
    snack.weight = 2.3; 
    snack.calories = 350; 
    cout << "Brand of snack: " << snack.brand << endl; 
    cout << "Weight of snack: " << snack.weight << endl; 
    cout << "Calories of snack: " << snack.calories << endl; 
    return 0; 
} 

我的問題是,爲什麼與a[20]我可以把它分配給數組,但brand我不能。

+0

_「爲什麼用'a [20]'我可以將它分配給數組」_你不能。 –

回答

4
char a[20] = "Mocha Munch"; 

這是字符數組a分配)的初始化。該語言特別允許從字符串文字初始化字符數組。

snack.brand = "Mocha Munch"; 

這是分配到一個數組。該語言不允許分配整個數組(完全)。

如果您想在C++中使用字符串,請不要浪費時間處理繁瑣且易於出錯的字符數組。使用std::string

相關問題