【发布时间】:2017-05-25 05:44:36
【问题描述】:
我想对两个字符串求和并得到一个 int 值作为结果。 为什么我不能简单地减去 48 将 char 转换为 int 值?
int AddOperator(char *a, char *b){
int sum = 0;
char i, j;
if (strlen(a) >= strlen(b)){
for(i=0, j=0; i < strlen(a); i++, j++)
sum += a[i-48]+b[j-48];
}
else if (strlen(b) > strlen(a)){
for(i=0, j=0; i < strlen(b); i++, j++)
sum += a[i-48]+b[j-48];
}
return sum;
【问题讨论】:
-
您正在从索引中减去 do
a[i] - 48 -
或者干脆
while (*a && *b) { sum += *a - '0' + *b - '0'; a++, b++; }(假设字符串a和b只包含数字,否则需要添加检查确认)