2013-10-10 59 views
1

我有一個char數組,chars[]其中包含值{'#', '$', '1'}。我想刪除1並將其放入另一個變量val,但是當我這樣做時,它給了我一個49(idk爲什麼)。我試圖調試它和信息顯示,是chars的內容如下:字符數組返回不正確的值

char[0] = 35 '#' 
char[1] = 36 '$' 
char[2] = 49 '1' 

這反過來又使

int val = char[2]; 

成爲

val = 49 

我不知道爲什麼,這是的,但它會拋棄我的計劃。有誰知道問題是什麼以及我能做些什麼來解決它?

回答

2

您應該使用 char val = char[2];

使用int,你所得到的焦炭作爲一個整數的ASCII表示。 另請參閱http://hu.wikipedia.org/wiki/ASCII

+0

我遇到了這個問題。現在它產生'val = 49'1''。有沒有辦法讓'1'? – blutuu

+0

調試器可能會顯示'val = 49'1',但只要數據類型是系統中的'char',它應該可以正常工作,在需要時給予字符'1'。 –

+0

@markwdickson瞭解。所以如果我運行'val'上的函數將'1'轉換爲int,我仍然應該得到1嗎? – blutuu

1

49是用於炭 '1'

link到ASCII表

+0

你知道嗎?當我編輯我的問題時,我意識到我正試圖將一個char放入一個int變量中。我相信這是我的問題。 – blutuu

+0

是的地址1的字符!=字符'1' –

1

這就是字符的數值的ASCII表示。 char只是一個8位數字。