How can I check with `if` if the word typed is equal to some word in a list of strings in C?

Asked

Viewed 36 times

-2

example:

#include <stdio.h>

int main(){

char input[20];
char* strings[] = {"maça","banana"};

printf("tente acertar uma das minhas frutas favoritas:\n");
scanf("%s", input);

if(input == strings[]){
     printf("parabens! você acertou %s é uma das minhas frutas favoritas!", input);
}else{
printf("você errou!");
     }
}
  • Look for the function strcmp

  • I imagine I should make a loop to compare the input with the options, or even a switch... Puts more information in your question, what your function is returning...

1 answer

0


I suggest setting a size for your char * strings[] and use strcmp to compare strings instead of ==. See the example below, and compare using strcmp has a loop for to scroll through the array and a flag to assist if found or not.

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

#define TAMANHO 10

int main(){
    
    int acertou = 0;
    char input[20];
    char* strings[TAMANHO] = {"maça","banana"};
    
    printf("tente acertar uma das minhas frutas favoritas:\n");
    scanf("%s", input);
    
    for (int i = 0; i < TAMANHO; i++) {
        if(strcmp(input, strings[i]) == 0) {
            printf("parabens! você acertou %s é uma das minhas frutas favoritas!\n", strings[i]);
            acertou = 1;
            break;
        } 
    }
    if (acertou == 0) {
       printf("você errou!\n");
    }
    
    return 0;
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.