如何解决此表达式不可分配的错误?

时间:2019-06-05 10:59:21

标签: c c-strings

我需要在有字符串且都应该是元音的情况下执行此方法,否则该方法将返回false,但是我遇到此表达式可分配的错误,我只是编码的初学者,请有人帮助我?谢谢!

int verify_vowel(char *string, char elem, int length){
    if(string != NULL){
        value= TRUE;
        for (i=0; i<length && value == TRUE; i++) {
            if(string[i] == elem){
                int is_vowel(char element);
                value = TRUE;
            }else{
                value= FALSE;
            }
        }
    }
    return 1;
}
int is_vowel(char element){
    int j;
    int value1;
    int length;
    char string2[LENGTH];
    value1= TRUE;
    for(j=0; j<length && value1== TRUE; j++){
        if(string2[j]= 'a' && string2[j]= 'e' && string2[j]='i' && string2[j]='o' && string2[j]= 'u'){ //im getting the error here
            value1= TRUE;
        } else{
            value1= FALSE;
        }
    }
    int main(){
    char string[]= "aeiuodsf";
    int ret;
    ret= is_vowel(string);
    printf("Result: %d\n",ret);
    return 0;
}

1 个答案:

答案 0 :(得分:3)

=用于分配,而==用于比较(如果需要,您也可以使用strcmp)。在这种情况下,您分配而不是进行比较,这就是为什么会出现错误。而且,从不使用verify_vowel。您可以通过这种方式完成

#include <stdio.h>

int is_vowel(char *element, int length){
    for(int j=0; j<length; j++){
        if(!(element[j]== 'a' || element[j]== 'e' || 
            element[j]== 'i' || element[j]== 'o' || 
            element[j]== 'u')){
            return 0;
        }
    }
    return 1;
}

int main()
{
    char *string= "aeifou";
    int ret;
    ret= is_vowel(string,strlen(string));
    printf("Result: %d\n",ret);
    return 0;
}