2014-10-07 87 views
0

我有一個char數組是這樣的:轉換的char []到INT []

char res[80]="00001111001010100100001010101100000010011100001000110010000101000100001010010001" 

想更換成

int res[80]=00001111001010100100001010101100000010011100001000110010000101000100001010010001 

已經做了這樣的事情:

char res[80]="00001111001010100100001010101100000010011100001000110010000101000100001010010001"; 
int resInt[80]; 
for (int i = 0; i<80; i++) { 
    resInt [i] = res[i]; 
    printf("%d",resInt[i]); 
} 

結果是這樣的:

4848484849494949484849484948494848494848484849484948494849494848484848484948484949494848484849484848494948484948484848494849484848494848484849484948484948484849 

任何人都可以幫助我? 感謝

回答

7

ASCII「0」其實48是標量的形式,所以減出來:

resInt[i] = res[i] - '0'; 
+1

非常感謝,你救了我的生命.... :) – 2014-10-07 15:01:46

+1

@BakhtiarYusuf,而不是張貼「謝謝!」 ,接受答案,因爲它解決了你的問題 – 2014-10-07 15:33:46

0

字符文字是在C int類型,你可以簡單地將其分配給一個int,char型轉換。但是,生成的int值將是ASCII值。所以你需要減去char'0'的ASCII值來獲得實際值。

resInt [i] = res [i] - '0';