如何确保用户输入值?

Yam*_*088 2 c

我试图让这段代码验证用户输入的值.如果我使用gets(),但是当我将其更改为fgets()时它会停止工作.我希望它继续循环,直到用户输入至少1个字符但少于25个字符串的字符串.如果在我的代码中不明显,我是编程新手.谢谢!

int main(void)
{
    char input[25], inputNew[25];
    int i;
    int x;
    int y;
    do
    {
        printf("Please enter a string less then 25 characters!\n");
        fgets(input, sizeof(input), stdin);  
        y = strlen(input);  
    }
    while(y>25 || y<=0);

    for (i = 0; i <= strlen(input); i++)
    {
        inputNew[i] = toupper(input[i]);
        for (x = 1; x <= strlen(input); x+=2)
        {
        inputNew[x] = tolower(input[x]);
        }
    }
    printf("The new value is: %s.\n", inputNew);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

nne*_*neo 6

fgets保留结束换行符,然后gets将其抛出.

因此,y <= 1如果您使用,则必须将支票更改为fgets.