函数是个好东西 2022-06-11 12:12 采纳率: 100%
浏览 46
已结题

关于c语言数组越界访问问题

img


#define _CRT_SECURE_NO_WARNINGS

#include  <stdio.h>

#include<string.h>
int main(void)
{
    int count=1;
    char number[20]={0};
    char *p = number;
    gets_s(number);
    if (*p == '1')
    {
        *p++;
        while (*p >= '0' && *p <= '9')
        {
            count++;
            *p++;
        }
        if (count == 11)
        {
            printf("yes");
            return 0;
        }
    }
    printf("no");
    return 0;
}

运行后c语言数组越界访问
是不gets的问题

img


如何修改

  • 写回答

2条回答 默认 最新

  • 关注

    重写写了一个,你可以试试

    int main()
    {
        char s[20];
        printf("请输入手机号码\n");
        scanf("%s",&s);
        if(strlen(s)==11&&s[0]=='1')
        {
            for(int i=0;i<11;++i)
            {
                char ch=s[i];
                if(ch<'0'&&ch>'9')
                {
                    printf("no\n");
                    break;
                }
            }
            printf("yes\n");
        }else
        {
            printf("no\n");
        }
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月12日
  • 修改了问题 6月11日
  • 创建了问题 6月11日