我有这个语法。 我对第二个函数(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/