Home > Back-end >  Getting error: expected expression before ‘{’ token in C while trying to verify struct
Getting error: expected expression before ‘{’ token in C while trying to verify struct

Time:03-23

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

#define LEN_ID 3
#define LEN_P 30
#define LEN_CIDADE 50
#define AT 40

typedef struct aeroporto
{
    char id[LEN_ID   1];
    char pais[LEN_P   1];
    char cidade[LEN_CIDADE   1];
} Aeroporto;

int findavailablespot(Aeroporto l[AT])
{
    int i = found = 0;
    for (;i<AT;i  ) {
        if (l[i] = {"aaa","bbb","ccc"}) //Error in this line
            break;
        if (found)
            return i;
        else
            return -1;
    }    
}

So i am creating the structure aeroporto then a vector made up of aeroportos and i want to check if {"aaa","bbb","ccc"} shows up inside the vector. Help?

Sorry for the formatting, new at this

CodePudding user response:

You have to use strcmp() to compare strings. There's no shortcut for doing this with all the members of a structure, you have to test each one individually and combine with &&.

You also forgot to set found before breaking out of the loop.

int i = 0, found = 0;

for (;i<AT;i  ) {
    if (strcmp(l[i].id, "aaa") == 0 && strcmp(l[i].pais, "bbb") == 0 && strcmp(l[i].cidade, "ccc")) {
        found = 1;
        break;
    }
}
  • Related