字符串解析运用-将字符串分解为多个整数,求各整数之和(华为oj)

描述

输入内容是一个字符串,输出结果为一个字符串。
要求在输入的字符串中识别出多个整数单元,并且对各个整数单元求和运算,最终输出一个字符串,输出的字符串内容是对各个整数单元求和的结果。
两个整数单元之间以空格分隔,每个整数单元可能为正整数,也可能为负整数,负整数的负号在整数的最前面且与整数间不插入任何字符。在输入的字符串中只可能出现数字字符、正负号、小数点和空格。

知识点字符串,循环,数组
运行时间限制10 Sec
内存限制128 MByte
输入

输入一个字符串,(长度小于100有输入者保证)

因输入的字符串都是标准十进制数,可能存在小数部分,在整数识别时需要舍弃小数部分;在运算过程中出现任何错误返回空字符串;

输出

各个整数单元之和的字符串

样例输入
654.12 -321
样例输出
333

 

 1 #include <iostream>
 2 #include <string>
 3 #include <cstdlib>
 4 
 5 #define M 101
 6 using namespace std;
 7 
 8 
 9 int main(){
10     char m[M], n[M];
11     long l1, l2, sum;
12     int count_m = 0, count_n =0;
13     scanf("%s %s", m, n);
14     //puts(m);
15     //puts(n);
16     if (strlen(m) == 1 && (*m == '.' || *m == '+' || *m == '-'))
17         return NULL;
18     if (strlen(n) == 1 && (*n == '.' || *n == '+' || *n == '-'))
19         return NULL;
20     for (int i = 1; i < strlen(m); i++){
21         while (m[i] == '+' || m[i] == '-')
22             return NULL;
23     }
24     for (int i = 1; i < strlen(n); i++){
25         while (n[i] == '+' || n[i] == '-')
26             return NULL;
27     }
28     for (int i = 0; i < strlen(m); i++){
29         if (m[i] == '.'){
30             count_m++;
31             if (count_m == 2)
32                 return NULL;
33         }    
34     }
35     for (int i = 0; i < strlen(n); i++){
36         if (n[i] == '.'){
37             count_n++;
38             if (count_n == 2)
39                 return NULL;
40         }
41     }
42     l1 = atol(m);
43     l2 = atol(n);
44     //cout << l1 << " " << l2 << endl;
45     sum = l1 + l2;
46     cout << sum << endl;
47 
48     system("pause");
49     return 0;
50 }

 

转载于:https://www.cnblogs.com/luolizhi/p/5337932.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值