输入一串字符串,将其中的数字字符逐个求和并输出,如输入"2019.06.11",输出为20。若没有数字字符,则输出no digit

#include<stdio.h>
int main(void)
{
    char str[100];
    char *p;
    int sum = 0;
    int flag = 0;
    gets(str);
    p = str;
    while(
    {
        if()
        {
            sum += *p - '0';
            flag = 1;
        }
        ;
    }
    if(flag == 0)
        printf("no digit");
    else
        printf("%d",sum);
    return 0;
}

看不懂,应该怎么做啊

改好了,如下:


#include<stdio.h>
int main(void)
{
    char str[100];
    char* p;
    int sum = 0;
    int flag = 0;
    gets(str);
    p = str;
    while(*p!='\0')
    {
        if (*p>='0'&&*p<='9')
        {
                sum += *p - '0';
                flag = 1;
        }
        p++;
    }
    if (flag == 0)
        printf("no digit");
    else
        printf("%d", sum);
    return 0;
}