字符串中数字子串的求和
来源:互联网 发布:围棋软件知乎 编辑:程序博客网 时间:2024/05/29 10:48
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
阅读全文
0 0
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串问题---字符串中数字子串的求和
- 求字符串中数字子串求和
- 5.2 字符串中数字子串的求和
- 改进版---字符串中数字子串的求和
- [编程之美-08]字符串中数字子串的求和
- 字符串之数字子串求和
- 对字符串中的数字子串求和
- C++字符串数字子串求和
- 字符串中最长的数字子串
- 查找字符串中最长的连续数字子串
- unity profiler深入学习6:rendering profiler
- kmp字符串匹配
- 类的初始化顺序
- JavaWeb学习篇之EL表达式
- URAL
- 字符串中数字子串的求和
- easystruts-1.0.2增加拦截器抽象类,Session处理
- MySQL中utf8和utf8mb4的区别
- python 报错Microsoft Visual C++ 14.0 is required
- 今天开始重新学习算法
- Mysql 修改用户密码
- Kotlin编程之三
- 复杂业务中,统一处理多表操作
- BZOJ1833 [ZJOI2010]count 数字计数