1588 - 判断数字位置

根据输入的字符串判断字符串中数字的位置

题目输入

输入第一行表示测试用例的个数m,接下来m行每行以个字符串,字符串长度不超过50

题目输出

输出m行。每行输出一行数字,用空格隔开,按顺序表示字符串中出现的数字的位置。

输入/输出样例

题目输入

1
a3b4c5

题目输出

2 4 6

C语言解答

#include<stdio.h>
#include<string.h>
int main(){
	char in[51];
	int out[51];
	int k;
	int len;
	int i;
	int m;
	scanf("%d",&m);
	getchar();
	while(m--){
		gets(in);
		len = strlen(in);
		k = 0;
		for(i=0;i<len;i++){
			if(in[i]>='0'&&in[i]<='9'){
				out[k++] = i + 1;
			}
		}
		for(i=0;i<k;i++){
			if(i==k-1){
				printf("%d\n",out[i]);
			}
			else
			{
				printf("%d ",out[i]);
			}
		}

	}
	return 0;
}

C++解答

#include <cstdio>
#include <cstring>
#include <cctype>

int main() {
    //freopen("test.in", "r", stdin);
    //freopen("test.out", "w", stdout);
    int t;
    char s[100];
    scanf("%d", &t);
    while (t--) {
        scanf("%s", s);
        int n = strlen(s);
        bool first = true;
        for (int i = 0; i < n; ++i)
            if (isdigit(s[i])) {
                if (first) first = false;
                else putchar(' ');
                printf("%d", i + 1);
            }
        puts("");
    }
    return 0;
}

时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题