2013-05-02 46 views
-6

如果我有一個4值的數組,我將如何將所有值存儲到一個變量中?如何將數組存儲到變量中?

char d[4]; 
    int allvalues; 
    d[0] = 1; 
    d[1] = 2; 
    d[2] = 3; 
    d[3] = 4; 

我想allvalues = 1234。如果我添加這段代碼,輸出結果會有所不同。

allvalues = d; 
    printf("%d", allvalues); 

謝謝!

+3

'allvalues = 1000 * d [0] + 100 * d [1] + 10 * d [2] + d [3];' – 2013-05-02 20:58:54

+0

沒關係我認爲它的工作。 – Ammar 2013-05-02 21:00:22

+1

這是因爲填充'd'時使用了錯誤的索引。你用3和4代替2和3,用'd [4]'調用未定義的行爲。 – 2013-05-02 21:01:31

回答

0
allvalues = d[3] + 10 * (d[2] + 10 * (d[1] + 10 * d[0])); 
-1

以下將轉換一個字符數組爲一個整數。

allvalues = atoi(d) 
+1

需要一個0終止的數組,並且沒有錯誤檢查。一旦你有一個0終止的數組,我寧願使用'strtol'。 – 2013-05-02 21:02:48

+0

'atoi()'沒有錯誤檢查。 – 2013-05-02 21:02:53

+0

@DanielFischer不是在C++中的strtol()。這被標記爲C.但我同意我忘記了null結束。 – Evo510 2013-05-02 21:04:21

0

您應該遍歷數組並將值附加到字符串中。像這樣的東西應該做的伎倆:

char d[4]; 
string allvalues; 
d[0] = 1; 
d[1] = 2; 
d[3] = 3; 
d[4] = 4; 

for(int i =0; i<4; i++) 
{ 
    allvalues = allvalues+d[i] 
} 
printf("%s", allvalues); 

我希望這有助於!

相關問題