关于C语言的问题,如何解决?

编写程序
(1) 编写函数 void delstr(chard[],char s[]),把字符串s中的数字字符拷贝到d数组中,形成新串。
(2)编写函数 long atol( char s[]) 把字符串表示的数字序列转化成对应的整数
(3)在 main 函数中输入一个字符串,调delstr 函数,生成只包含数字字符新串,再调用 atol 函数将新串转化成对应的整数。

#include <stdio.h>

void delstr(char d[],char s[])
{
    int i=0,j=0;
    while(s[j]!= '\0')
    {
        if(s[j]>='0' && s[j]<='9')
            d[i++] = s[j];
        j++;
    }
    d[i] = 0;
}

long atol( char s[])
{
    int i=0;
    long sum = 0;
    while(s[i] != '\0')
    {
        sum = sum *10 + s[i]-'0';
        i++;
    }
    return sum;
}



int main()
{
    char buf[100],s[100];
    scanf("%s",s);
    delstr(buf,s);
    printf("%ld",atol(buf));
    return 0;
}
#include <stdio.h>
#include <string.h>
void delstr(char d[],char s[])//把字符串s中的数字字符拷贝到d数组中,形成新串。
{
    int i,j=0,len;
    len = strlen(s);
    for (i = 0; i < len; i++)
    {
        if (s[i]>='0' && s[i]<='9')
            d[j++] = s[i];
    }
    d[j] = 0;
}
long atol( char s[])
{
    int i,n=0,len;
    len = strlen(s);
    for (i = 0; i < len; i++)
    {
        n = n*10+s[i]-'0';
    }
    return n;
}

int main()
{
    char s[100];
    char d[100];
    gets(s);
    delstr(d,s);
    printf("%ld\n", atol(d));
    return 0;
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

#include <stdio.h>
#include <ctype.h>

void delstr(char d[], char s[])
{
    while (*s)
    {
        if (isdigit(*s))
            *d++ = *s;
        s++;
    }
    *d = '\0';
}

long atol(char s[])
{
    long r = 0;
    while (*s)
    {
        r = r * 10 + *s - '0';
        s++;
    }
    return r;
}

int main()
{
    char s[64], d[64];
    scanf("%s", s);
    delstr(d, s);
    printf("%ld", atol(d));
    return 0;
}