Как исправить это выражение не присваиваемая ошибка? - PullRequest
1 голос
/ 05 июня 2019

Мне нужно сделать этот метод, где у меня есть строка, и все должны быть гласными, иначе метод вернет 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 Ответ

3 голосов
/ 05 июня 2019

= используется для назначения, а == используется для сравнения (вы также можете использовать 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;
}
...