用c语言如何判断输入字符串是否越界

请问C语言如何在不强制刷新缓冲区的情况下,判断输入的字符串是否越界,并且重新输入

 

buffer数组大小你是知道的吧,在接收到一个字符后,判断不是换行符,则加入buffer数组,并将字符计数加1。然后判断字符计数是否等于buffer数组大小,是则输入结束,否则继续接收输入。你的代码大致可以,但是循环内的c=getchar()位置不对,应该放到循环最后。31行只需要判断长度是否为buffer数组长度,因为c不是换行符是while的条件

#define maxsize 1000
int main()
{
    char buffer[maxsize+1] = {0};
    int len = 0;
    char c = getchar();
    while(c != '\n')
    {
        buffer[len++] = c;
        if(len == maxsize)
            break;
        c = getchar();
    }
    printf("%s",buffer);
    return 0;
}

当字符串最后一个字符=='\0'时,就说明到最后一个字符了,就必须停止了,再过就越界了

可以参考这篇文章的思路,我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《C语言中处理一行输入未知个数的整数的问题》, 一起来围观吧 https://blog.csdn.net/zhouzying/article/details/105076417?utm_source=app&app_version=5.2.1&code=app_1562916241&uLinkId=usr1mkqgl919blen

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632