求助大佬,为啥我这个跑出来是0,不知道哪里有问题,求助大佬们看看。 字符串操作,输入字符串,提取其中的数字并相加,在屏幕上显示结果,比如 输入 dfd56hj5hjkk9kk7,应该在屏幕上显示: 56+5+9+7=77.
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int l,sum=0;
l=s.size();
for(int i=0;i<l;i++){
if(isdigit(s[i])&&isdigit(s[i+1])) { //加两位数,并跳过下一位字符的判断
sum=sum+(s[i]-'0')*10+(s[i+1]-'0');
cout<<(s[i]-'0')*10+(s[i+1]-'0');
if(i!=l-1){ //判断是否是最后一个数
cout<<"+";
}
i++; }
else if(isdigit(s[i])&¬ isdigit(s[i+1])){ //加一位数
sum=sum+(s[i]-'0');
cout<<sum+(s[i]-'0');
if(i!=l-1){//判断是否是最后一个数
cout<<"+";
}
}
cout<<sum<<endl;
return 0;
}}