Ho due funzioni: una mi chiede di inserire il nome del prodotto che voglio eliminare, l'altro mi prende questo nome, lo confronta con tutti quelli possibili e mi ritorna 1 o 0 a secondo se è stato trovato o no un nome uguale. Non mi da nessun errore in fase di compilazione ma quando lo eseguo e immetto i dati mi restituisce sempre 0.

Ecco le due function:
codice:
/*Funzione per eliminare un prodotto dato il nome*/
void EliminaProdotto (int mycar[50])
{
    int i, j, contaprodotti = 0,risultato;
    char deleteprodotto[50];

    /*Inserisco la lista prodotti*/
    listaprodotti();
    printf("Codice\tNome\t\tDescrizione\t\t\tCosto\tSconto\n");

    /*Mostro la lista*/
    for(i=0;i<50;i++)
    {
        if((j = mycar[i]) != -1)
        {
            printf("%d\t%s\t%s\t%d\t%d\n", elemento[j].codice, elemento[j].nome, elemento[j].desc, elemento[j].costo, elemento[j].sconto);
            contaprodotti += 1;
        }
    }

    /*Se i prodotti nel carrello sono 0 mostro che non ci sono prodotti nel carrello*/
    if(contaprodotti == 0)
    {
        printf("Non ci sono prodotti nel carrello\n\n");
    }

    printf("Inserisci il nome del prodotto che vuoi eliminare dal carrello = ");
    scanf("%s", deleteprodotto);
    risultato = Delete(mycar, deleteprodotto);
    if(risultato != 0)
    {
        printf("Prodotto eliminato correttamente\n");
    } else {
        printf("Non esiste alcun prodotto con questo nome\n");
    }
}

int Delete (int mycar[50], char deleteprodotto[50])
{
    int i,j,successo=0;
    listaprodotti();

    for(i=0;i<50 && successo==0;i++)
    {
        if((j = mycar[i]) == -1)
        {
            successo = 0;
        } else if(deleteprodotto == elemento[j].nome)
        {
            j = -1;
            successo = 1;
            return 1;
        }
    }
    return 0;
}
Dov'è l'errore? >.<