将参数作为字符串调用不起作用-C

将参数作为字符串调用不起作用-C,c,input,verify,C,Input,Verify,我正在尝试编写一个函数,它将接受一个输入,并在它有效时返回它 即使输入正确,该功能也会持续打印错误消息 如何传递参数以进行验证,而不事先将其计算为布尔值 #include <stdio.h> #include <stdlib.h> #include <string.h> char verify(char argument[256]){ //function to check an input is valid char inpu

我正在尝试编写一个函数,它将接受一个输入,并在它有效时返回它

即使输入正确,该功能也会持续打印错误消息

如何传递参数以进行验证,而不事先将其计算为布尔值

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char verify(char argument[256]){            //function to check an input is valid
    char input;
    while(1){
        input = getchar();
        while(getchar()!='\n');             //clear buffer
        if(argument){
            break;
        }
        printf("That is not a valid input. Try again: ");       //error message
    }
    return input;
}

int main(void){

    char input;

    printf("Enter an alphabetical input: ");
    input = verify(input>64&&input<91||input>96&&input<123);   //checks to see if the ASCII value of the input corresponds to a alphabetical char

    printf("Input is: %c",input);

    return 0;
}
#包括
#包括
#包括
char verify(char参数[256]){//用于检查输入是否有效的函数
字符输入;
而(1){
input=getchar();
while(getchar()!='\n');//清除缓冲区
if(参数){
打破
}
printf(“这不是有效的输入。请重试:”;//错误消息
}
返回输入;
}
内部主(空){
字符输入;
printf(“按字母顺序输入:”);

input=verify(input>64&&input96&&input而不是
if(参数)
您需要实际将布尔条件放在那里:
if(input>64&&&input96&&input)您认为这是什么
input=verify(输入>64&&input96&&inputVerify函数要求用户输入字符,直到满足参数。然后将该值分配给字符“input”。这是错误的吗?对于一个开始,输入是否有值?那么您最多只能传递一个布尔值来验证-而不是一个数组。如果没有布尔值,它将被初始化,并且用户希望在verify中向它输入一个字符。这意味着检查输入字符是否按字母顺序排列,然后将该值返回到main中的字符“input”