while(pom!=NULL&&strcmp(pom->p.(tytul->c_str()), tytul->c_str())!=0)
Ta linia to nieczytelne szaleństwo, nawet w C, a co dopiero w C++. Tak boli napisać to?
while(pom != NULL && pom->p.tytul != *tytul)
A z innych spraw: 1. To nie C, nie trzeba pisać struct przy każdym użyciu "element", 2. Dlaczego string do funkcji przekazujesz przez wskaźnik...?