How can I add two Quaternions together

So I’m trying to avoid gimbal lock by using quaternions. I have very little understanding of them. But in code there appears to be nifty conversions for them back and fourth to rotators. So the first Quat that I’m trying to use is:

FRotator UpLookAt = UKismetMathLibrary::MakeRotFromZX(CharacterOwner->GetActorLocation() * -1, CharacterOwner->GetActorForwardVector());
UpLookAt.Yaw = 0.0f;
FQuat QuattedRot = UpLookAt.Quaternion();

This this quaternion points the Upvector of my character at the worlds (0,0,0) and zeros the Yaw out because the Yaw Value is in the next Quat.

FRotator MyControllerRot = CharacterOwner->GetControlRotation();
MyControllerRot.Pitch = 0.0f;
MyControllerRot.Roll = 0.0f;
FQuat QuattedRotTwo = MyControllerRot.Quaternion();

Now I haven’t figured out how/ where to get the actual controller input for the Yaw value but lets assume it’s there in that last one. Now how do I add the two Quaternions together to form the new rotation?

I found somewhere that if I multiply the Quats together that is like adding them? Also a way to get the input that doesn’t appear to work.

AController* Controller = CharacterOwner ? CharacterOwner->Controller : NULL;
	GEngine->AddOnScreenDebugMessage(-1, 5.0, FColor::Red, FString("Rotation"));
	FRotator UpLookAt = UKismetMathLibrary::MakeRotFromZX(CharacterOwner->GetActorLocation() * -1, CharacterOwner->GetActorForwardVector());
	UpLookAt.Yaw = 0.0f;
	FQuat QuattedRot = UpLookAt.Quaternion();
	FRotator MyControllerRot = CharacterOwner->GetControlRotation();
	MyControllerRot.Pitch = 0.0f;
	MyControllerRot.Roll = 0.0f;
	MyControllerRot.Yaw += Controller->GetInputAxisValue("MoveRight");
	FQuat QuattedRotTwo = MyControllerRot.Quaternion();
	FRotator FinalRotator = (QuattedRotTwo * QuattedRot).Rotator();
	Controller->SetControlRotation(FinalRotator);

I was able to acheive this in Blue Print by using the Combine Rotators node. For this particular problem I was using the InputAxis Turn Event as a rotator - combined into the MAkeRotZX (z = Actor Location * -1, X = Actor Forward Vector).