么么哒!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();
}


#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();
}

头文件是不是要加上
#include

getch()函数在conio.h中。

产生了非法的内存使用

#include "stdafx.h"

#include <stdio.h>
#include <conio.h>

int main()
{
    char str[80] = {0}, *pstr = NULL;
    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();
} 
 #include "stdafx.h"

#include <stdio.h>
#include <conio.h>

int main()
{
    char str[80] = {0};
    gets(str);
    char* pstr=str;

    for(;*pstr != '\0'; ++pstr)
    {
        bool flag = false;
        char ch = *pstr;
        if(('0' <= ch) && ('9' >= ch))
        {
            flag = true;
            printf("%c", ch);
        }
        if(flag)
        {
            ch = *(++pstr);
            if(ch != '\0')
            {
                if(('0' <= ch) && ('9' >= ch))
                {
                    printf("%c", ch);
                }
                else
                    printf(",");
            }
        }
    }
    getch();
}

没有明白你要做什么,这个是一个无限循环,另标准C(c99)中“*pstr=str;”这一句一般都是有问题的,字符串不支持这样赋值

页面太烂了,点击没有反应,反应过来这么多

你访问了非法内存,所以会有这种情况。

重复这么多个,吓尿了。pstr=str才对吧