开发者社区 问答 正文

C题为什么出现Segmentation fault,求修改(求修改我的代码,但谢绝新代码)

//就输出89,129,一共2个数。 
# include<stdio.h>
int main()
{
    char str[80],*pstr;
    int i=0,flag=1,num=0;
    *pstr=str;
    gets(str);
    while(flag==1)
        {
        for(i=0;*(str+i)!='\0';i++)
            {
            if('0'<=*(str+i)&&*(str+i)<='9')
            num=num+(*(str+i)-48);
            }
        flag=0;

        while(flag==0)  
                    {
                    printf("%d,",num);
                    flag=1;
                    }
        }
getch();
}

展开
收起
a123456678 2016-03-23 11:12:57 1716 分享 版权
1 条回答
写回答
取消 提交回答
  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char str[80],*pstr;
        int i=0,flag=0,num=0;
        pstr=str;
        gets(str);
        for(i=0;*(str+i)!='\0';i++)
        {
            if('0'<=*(str+i)&&*(str+i)<='9')
            {
                flag = 1;
                num=num*10+(*(str+i)-48);
            }
            else
            {
                if (flag == 1)
                {
                    printf("%d,",num);
                    flag = 0;
                    num = 0;
                }
            }
        }
        printf("%d",num);
        getchar();
    }
    
    2019-07-17 19:10:35
    赞同 展开评论
问答地址: