c语言:分离字符串中的数字

设有一个字符串,里面有数字和字母或空格,请将字符串中的数值(相邻的数字认为是同一数值)分离出来,将它们连成一排组成一个最大的多位整数(注意整数的范围,不要越界)。

img

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int fun(char arr[]);
// 自定义函数声明
int main(){
    char str[100], str_2[100];
    int num;
    scanf("%[^\n]s", str);
    // 字符串输入
    num = fun(str);
    // 调用函数处理
    printf("%d", num);
}

int fun(char arr[]){
    int j = 0;
    char num[100];
    for(int i=0; i<=strlen(arr); i++){
        // 遍历字符串中每一个字符
        if(arr[i]>='0' && arr[i]<='9'){
            num[j++] = arr[i];
        }
    }
    int number = atoi(num);
    // 字符串数字转整型数字
    return number;
}