C语言,关于提取字符串中的数字

之前用指针写过,然后现在想试试不用指针的,但不知道为啥不对……

#include"stdio.h"//提取字符串中的数字 例如:输入ert34edf5fg6   输出:3456
#include"string.h"
int main(void)
{
    char str[85];
    gets(str);
    int len = strlen(str);
    int i;
    for(i = 0;i < len;i++)
    {
        if((str[i] >= '0') && (str[i] <= '9'))
        printf("%d",str[i]);
    }
    return 0;
}

printf("%c",str[i]);

因为你用字符串输入,所以输出就不能用整型占位符%d了,要用字符型占位符%c

printf("%c",str[i]);