Usuwanie wszystkiego po znaku (a także postaci)

Mam taki ciąg:

std::string string1 = "xjdfhfakdjs%54k34k.-jk34";

Muszę uzyskać tylko „” xjdfhfakdjs ”, ale łańcuch jest dynamiczny, nie zakodowany na stałe, więc nie wiem, co to jest, długość itd., Więc chciałem usunąć wszystko po%, a także% char.

Jak mogłem to zrobić?