如果我有一個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);
謝謝!
如果我有一個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);
謝謝!
allvalues = d[3] + 10 * (d[2] + 10 * (d[1] + 10 * d[0]));
以下將轉換一個字符數組爲一個整數。
allvalues = atoi(d)
需要一個0終止的數組,並且沒有錯誤檢查。一旦你有一個0終止的數組,我寧願使用'strtol'。 – 2013-05-02 21:02:48
'atoi()'沒有錯誤檢查。 – 2013-05-02 21:02:53
@DanielFischer不是在C++中的strtol()。這被標記爲C.但我同意我忘記了null結束。 – Evo510 2013-05-02 21:04:21
您應該遍歷數組並將值附加到字符串中。像這樣的東西應該做的伎倆:
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);
我希望這有助於!
'allvalues = 1000 * d [0] + 100 * d [1] + 10 * d [2] + d [3];' – 2013-05-02 20:58:54
沒關係我認爲它的工作。 – Ammar 2013-05-02 21:00:22
這是因爲填充'd'時使用了錯誤的索引。你用3和4代替2和3,用'd [4]'調用未定義的行爲。 – 2013-05-02 21:01:31