数据大搜索 UESTC - 59

写一个程序,把一个字符串中的数字子序列找出来并转换成十进制整数输出。

Input

第一行是整数nn,表示测试的数据组数,下面是nn行无空格的字符串(长度不超过200)。题目保证字符串中含的整数位数小于99位,不考虑负数情形。

Output

每一行输入对应一行输出,一行中若有多个数据,每个数据后有一个空格。

Sample Input

1
00tUrA-Hc:T#7yN`;J0123Y+'-rD%\SV`{)e'9;Lt[^$}~0

Sample Output

0 7 123 9 0

Hint

AC代码:

Select Code

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#define inf 0x3f3f3f3f
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int t;
    int n, i, j;
    char c[210], a[123];
    long long p[210];
    scanf("%d",&t);
    while(t--)
    {
        cin>>a;
        n = strlen(a);
        int h  = 0;
        for(i = 0;i<n;i++)
        {
            if(a[i]>='0'&&a[i]<='9')
            {
                for(j = i;;j++)
                {
                    i++;
                    if(a[j]>='0'&&a[j]<='9')
                    {
                        c[h++] = a[j];
                    }
                    else
                    {
                        i--;
                        c[h++] = '@';
                        break;
                    }
                }
            }
        }
        long long k = 0;
        int x = 0;
        for(i = 0;i<h;i++)
        {
           if(c[i]!='@')
           {
               k = k*10+c[i]-'0';
           }
          else
          {
              p[x++] = k;
              k = 0;
          }
        }
      //  printf("!%d\n",x);
        for(i = 0;i<x;i++)
        {
            printf("%lld%c",p[i],i==x-1?'\n':' ');
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41524782/article/details/82024597
59