Eu criei uma parte, só que estou me batendo pra complementar typedef struct site{ char nomeSite[50]; char linkSite[50]; }Site; typedef struct noLista{ Site valor; struct noLista *prox; }NoLista; typedef struct lista{ NoLista *inicio; } char * ProcuraLink(char *nomeSite, Lista *lista){ char link[50]; noLista p = lista->inicio; noLista aux; while(p != NULL){ if (strcmp(nomeSite, p->nomeSite) == 0){ strcpy(p->linkSite, &link[0]); break; } p = p->prox; aux = p; } if(p == NULL) return null; //site n foi encontrado if(p == Lista->inicio) return &link[0]; //site já o primeiro da lista aux = p-prox; lista->inicio = p; return &link[0]; }