我需要通過我的char數組中只有int存儲的每個位置,並且我需要使用每個數字進行計算。如何將存儲在char數組中的int轉換爲int變量進行計算?
我
char num1[a];
char num2[b];
基本上,我需要添加num1[1]+num2[1]
和num1[2]+num2[2]
等。 如何將每個字符位置轉換爲int
進行計算? 在此先感謝
我需要通過我的char數組中只有int存儲的每個位置,並且我需要使用每個數字進行計算。如何將存儲在char數組中的int轉換爲int變量進行計算?
我
char num1[a];
char num2[b];
基本上,我需要添加num1[1]+num2[1]
和num1[2]+num2[2]
等。 如何將每個字符位置轉換爲int
進行計算? 在此先感謝
你的問題有點不清楚。
如果您要添加的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');
凡sum
爲int
變量初始化爲零,num1
和num2
是char
陣列和i
,這要添加該陣列的索引。
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;
}
使用atoi()函數。 ''int n1 = atoi(num1 [n]);'或'int sum = atoi(num1 [0])+ atoi(num2 [0]);' – i486 2014-11-14 13:18:35
@ i486 atoi()應該避免使用sscanf() ,因爲後者可以告訴轉換何時失敗。請注意,這兩個函數只能操作以NUL結尾的字符數組 - 這是一個假設,我們不知道它是否爲真。 – Jens 2014-11-14 13:39:13