字符串中数字子串的求和
2017-08-11 11:52
204 查看
if 0
/*2、字符串中数字子串的求和
【题目】给定一个字符串str,求其中全部数字串所代表的数组之和
【要求】a>忽略小数点字符,如”A.1.3”其中包含两个数字1和3
b>如果紧贴数字子串的左侧出现字符”-”,当连续出现的数量为奇数时,则数字视为负,连续出现的数量为偶数时,则视为正,如,”A-1BC- -12”,其中包含数字为-1和12
【例如】str=”A1CD2E33” 结果为36
Str=”A-1B- -2C- -D6E” 结果为7
*/
int StringSum(string str1) { int cur = 0; //当前的字符 int flag = true; //判断当前数字是正数还是负数 true表示正数 int sum = 0; //求所有数字之和 int num = 0; //保存当前连续的数字 if(str1.length() == 0) return 0; for(int i = 0;i<str1.length();i++) { cur = str1[i]-'0'; if(cur<0||cur>9) //当前是字符 { sum+=num; //加上之前的数字 num = 0; //num保存当前连续的数字,所以每次都需要清0 if(str1[i] =='-') { if(str1[i-1] == '-') //如果当前以及上一个是'-',需要将flag取反 flag = !flag; else flag = false; //否则,为负数 } else flag = true; //当前字符不是‘-’,需要将flag转为true } else //当前字符是数字 { if(flag == true) //如果该数字为整数 num=10*num+cur; else num = 10*num-cur; } } sum+=num; return sum; } int main() { string str1; cout<<"请输入一段字符串:"; cin>>str1; int sum = StringSum(str1); cout<<"字符串数字字串求和结果为:"<<sum<<endl; } #endif
相关文章推荐
- 字符串之数字子串求和
- C++字符串数字子串求和
- 改进版---字符串中数字子串的求和
- 字符串中数字子串的求和
- [编程之美-08]字符串中数字子串的求和
- 5.2 字符串中数字子串的求和
- 字符串中数字子串的求和
- 求字符串中数字子串求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串问题---字符串中数字子串的求和
- 字符串中数字子串的求和
- [算法]字符串中数字子串的求和
- 对字符串中的数字子串求和
- 字符串中数字子串的求和
- 输出一个字符串中表示数字字符中的最长子串
- 取出字符串中的数字求和(c语言)
- 百度的一个笔试题:求字符串的最长数字子串的长度
- 查找字符串中最长的连续数字子串