Hold_C
2017-12-08 15:55
采纳率: 73.3%
浏览 1.4k
已采纳

C语言代码,段错误,看不出为什么错

题目表述:
对于给定的一个字符串,统计其中数字字符出现的次数。
错误描述:
编译器提示段错误
但是没找出为什么会发生段错误

# include<stdio.h>
# include<string.h>
int main()
{
    int i,n,len,num;
    char *ch;
    scanf("%d",&n);
    while(n--)
    {
        num=0;
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch[i]>='0'&&ch[i]<='9')
                num++;
        }
        printf("%d\n",num);
    }   
    return 0;
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2017-12-08 16:03
    已采纳

    char *ch;
    定义了指针,但是没有分配空间

    char *ch; = (char *)malloc(100*sizeof(char));

    如果问题解决,麻烦点下回答右边的采纳,谢谢

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 蜡基ZQ 2017-12-09 00:10

    没有实例化ch指针,所以你是不能存放东西的,具体的实例化可以用1楼的方法

    评论
    解决 无用
    打赏 举报
  • 雪飞梦魂天 2017-12-09 00:48

    没有实例化ch指针,还有for循环也错了,for(i=0;i<len;i++){}

    评论
    解决 无用
    打赏 举报
  • tipyaapy 2017-12-10 08:56

    定义指针时需要分配空间,没有实例化ch指针 主要是指针问题

    评论
    解决 无用
    打赏 举报