题目是只有+/-的字符串算式,是比较简单的,我想使用新学的substr来实现截取数字,但是这个输出不了结果,所以请教一下大佬。比如:+1+2+3,输出:6.我这个输出不了,所以想请教一下大佬们
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int l=s.size();
int sum=0;
for(int i=0;i<l;i++){
if(s[i]=='+'){ //+的情况
int j=i+1;
while(s[j]!='+'||s[j]!='-'){
j++;
if((s[j]=='+')||(s[j]=='-')){
string ss;
ss=s.substr(i+1,j-i-1);//将数字截取到ss中
sum=sum+atoi(ss.c_str());//ss字符串中的数字转成数字加到sum中
}
}
}
else if(s[i]=='-'){ //-的情况
int j=i+1;
while(s[j]!='+'||s[j]!='-'){
j++;
if((s[j]=='+')||(s[j]=='-')){
string ss;
ss=s.substr(i+1,j-i-1);
sum=sum-atoi(ss.c_str());
}
}
}
else{
continue;
}
}
cout<<sum<<endl;
return 0;
}