c - C 中 char 数组的 if 语句

标签 c arrays function syntax char

我有这个语法。 我对第二个函数(validateGuess)有疑问 该函数应该检查用户引入程序的字符。 我做了一个函数,再次询问用户一个字母是否不是 0-9 之间的字母(在 main 上)。 但如果输入了一封信,程序会要求用户重新写一次。 但如果我输入像 22 这样的数字,程序不会再次向用户询问,因为我不知道如何将输入限制为 1 位数字。 重要的是,我的老师要求我们制作一个 char 数组而不是 int 数组。 我需要 if 语句仅在函数中检查它。如果返回1则为合法数,如果返回0则非法,应重新写入。

语法如下:

#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
void GenerateCode(char code[SIZE]);
int validateGuess(char guess[]);

void main ()
{
    int i;
    char code[SIZE]={0};
    char input[SIZE]={0};
    GenerateCode(code);
    printf("Write your guess please\n");
    for(i=0;i<SIZE-1;i++)
    {
    scanf("%s",&input[i]);
    if(validateGuess(&input[i])==0)
        {
            printf("Wrong input, put a number between 0 to 9\n");
            i--;
        }
    }

    system("pause");
}

void GenerateCode(char code[SIZE])
{
    int i;
    for(i=0;i<SIZE;i++)
    {
        code[i]=rand()%10;
    }
}

int validateGuess(char guess[])
{
    int validateGuess=0;
    if((guess[0]>=49) && (guess[0]<=57))
        validateGuess=1;

    return validateGuess;
}

最佳答案

您不能限制用户的输入,至少不能以这种方式。但是您可以使用 getline 函数从流(我猜是 stdin)中读取一行,并使用 strlen 检查其长度。如果输入的大小不正确,请再次要求输入,直到获得所需的内容。

关于c - C 中 char 数组的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20582619/

相关文章:

javascript - HTML 页面中的多个 onclick 按钮

android - 如何使用 android xml 为函数提供参数?

c - 如何防止错误 : this old-style function

c - 二维数组的动态内存分配 (C)

c++ - 使用在当前函数下面声明的函数(允许循环依赖)?

c - 将指针转换为 void 指针并写入它是 UB 吗?

c - const 数组变量的运行时异常

c - 如何在 Perl 中通过 Inline::C 使用 VTD-XML?

c - printf 减慢了我的程序

c - sizeof() 显示不同的输出