2014-11-14 34 views
0

我需要通過我的char數組中只有int存儲的每個位置,並且我需要使用每個數字進行計算。如何將存儲在char數組中的int轉換爲int變量進行計算?

char num1[a]; 
char num2[b]; 

基本上,我需要添加num1[1]+num2[1]num1[2]+num2[2]等。 如何將每個字符位置轉換爲int進行計算? 在此先感謝

+1

使用atoi()函數。 ''int n1 = atoi(num1 [n]);'或'int sum = atoi(num1 [0])+ atoi(num2 [0]);' – i486 2014-11-14 13:18:35

+1

@ i486 atoi()應該避免使用sscanf() ,因爲後者可以告訴轉換何時失敗。請注意,這兩個函數只能操作以NUL結尾的字符數組 - 這是一個假設,我們不知道它是否爲真。 – Jens 2014-11-14 13:39:13

回答

0

你的問題有點不清楚。

如果您要添加的char陣列中的所有int S,使用isdigit()ctype.h檢查它是否是一個數字而再添變數sum相應

int i,sum=0,len=strlen(num1); 
for(i=0 ; i<len ; i++) 
{ 
    if(isdigit(num1[i]) 
     sum=sum+(num1[i]-'0'); 
} 

否則,如果你確信該陣列只包含數字,取出if在上述代碼

如果要添加兩個不同陣列的每個整數,使用

sum=(num1[i]-'0')+(num2[i]-'0'); 

sumint變量初始化爲零,num1num2char陣列和i,這要添加該陣列的索引。

0

char's+操作數提升爲int隱含所以只是你可以添加則如下圖所示:

int main() 
    { 
     int i; 
    char a[5] = {1,2,3,4,5}; 
    char b[5] = {6,7,8,9,10}; 

    for(i=0;i<5;i++) 
    printf("%d\n",a[i] + b[i]); 
    return 0; 
    }