1899 今天,你AC了吗

描述

这是本次比赛的最后一个题目,毫无疑问,也是一个很简单的题目,期待它能给各位参赛的同学带来自信和好运。

题目的任务很简单:假设一个字符串中连续的若干数字字符可以认为是一个整数,现在给定一个字符串,请从中找出所有的正整数并求和输出。

比如,第一个样例“a23badfr21,3”中包含3个正整数,分别是23、21和3,所以最后要输出的和应该是47;而第二个样例“I-Love-BIT”中没有任何整数,所以应该输出0。

特别说明,题目保证所有求和的结果在32位整数范围之内。够简单吧——这里想问问各位:今天,你AC了吗?

输入

输入数据首先包含一个正整数T(0<T<=20),表示有N组测试用例,接下来的N行是N组测试数据,每行包含一个长度不超过100的字符串,不为空串且字符均是ASCII可见字符。

输出

对于每组测试数据,请对所有的正整数求和输出,每组输出占一行。

样例输入
2
a23badfr21,3
I-Love-BIT
样例输出
47
0

水题,字符串处理

#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
using namespace std;
int tu(string s)
{
    if(s=="\0")
    return 0;
    
    int x=s[0]-'0';
    for( int i=1;i<s.length();i++)
      x=x*10+(s[i]-'0');
      
      return x;
}
int main()
{
    int t,n;
    scanf("%d",&t);
    string s;
    while(t--)
    {
        cin>>s;
        string tt="\0";
        int sum=0;
        
        for( int i=0; i<s.length(); i++)
        {
              if( s[i]-'0' >=0 && s[i]-'0'<=9  )
                 tt+=s[i];
              else {    sum+=tu( tt) ;
                        tt="\0"; }
        }
        sum+=tu(tt);
        printf("%d\n",sum);
        }
              
        
        
    return 0;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值