#include <iostream> // cin, cout
using namespace std;
int main(void)
{
char c[80];
int i, sum=0;
cin.getline(c,80);
for(i=0; c[i]; i++) // c[i] != '\0'
if('0'<=c[i] && c[i]<='9') sum += c[i]-'0';
cout<< "Sum of digits = " << sum << endl;
getchar();
getchar();
return 0;
}
除了sum += c[i] - '0'之外,我都理解了。我去掉了“-'0'”,但它没有给出正确的答案。为什么呢?
'a' - '0'
,这主要是无意义的巧合,并且与字符集有关。而这个问题是关于从'0'
到'9'
中减去'0'
,我相信这是明确定义的。现在,确实有一些解释适用于这个问题,但它们是不同的问题。 - jamesdlin