您的位置:首页 > 编程语言 > C语言/C++

C++实现字符串中数字字串求和

2017-07-10 20:13 1826 查看
题目:给定一个字符串str,求其中全部数字串所代表的数字之和

要求:忽略小数点,对‘-’号进行处理,偶数个为正,奇数个‘-’则为负

#include <iostream>

using namespace std;

int strToNumber(string str){
if (str.length()==0)
return 0;
int count = 0;
int sum ;
bool flag;//标记正负取值,flag为true则为正,false为负
int i = 0;
while (i<str.length())//循环遍历每一个字符
{
flag = true;
sum = 0;
while (i<str.length()&&str[i]=='-'){//统计-的个数
flag = !flag;
i++;
}
while (i<str.length()&&str[i] >= '0'&&str[i] <= '9')//遍历到数字时,进行累加计算子数字串
{
sum = sum * 10 + (str[i] - '0');
i++;
}
sum = flag ? sum : -sum;
count += sum;//统计子数字串和
i++;

}
return count;
}

int main(){
string str1 = "A1CD2E33";
string str2 = "A-1B--2C--D6E";
int result1=strToNumber(str1);
int result2 = strToNumber(str2);
cout << result1 << endl<<result2<<endl;
cin.get();
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: