#include
using namespace std;
int main()
{
char s[255],r[255];int sum=0;
cin.getline(s,255);
for(int i=0,j=0;s[i]!='\0';i++)
{
if( s[i]>='0' && s[i]<='9' )
{
r[j] = s[i];
j++;
}
for(int j=0;j!='0';j++)
sum+=r[j];
}
cout<<sum<<endl;
return 0;
}
代码里得到为数字字符的 ascii 值之和,比如 ‘1’ 的 ascii 值为 49 ,‘2’ 为 50,‘1’ + ‘2’ = 49 + 50 = 99 。修改如下,供参考:
#include <iostream>
using namespace std;
int main()
{
char s[255],r[255];
int sum=0;
cin.getline(s,255);
for(int i=0,j=0;s[i]!='\0';i++)
{
if( s[i]>='0' && s[i]<='9' )
{
sum += s[i]-'0'; //修改
//r[j] = s[i];
//j++;
}
//for(int j=0;j!='0';j++)
// sum+=r[j];
}
cout<<sum<<endl;
return 0;
}