写一个程序,把一个字符串中的数字子序列找出来并转换成十进制整数输出。
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;
}