"D'Alembert's method" looks for solutions of the form u(x- ct)+ v(x+ ct) for unknown functions u and v (we can think of "u(x- ct)" as a wave in shape u moving to the right at speed c and "v(x+ ct)" as a wave in shape v moving to the left at speed c. D'Alembert's method gives the solution in terms of "traveling waves" where "separation of variables" gives it in terms of "standing waves".)
It is easy to show that y(x,t)= u(x- ct)+ v(x+ ct) satisfies the wave equation, \(\displaystyle y_{xx}= c^2y_{tt}\) for any twice-differentiable u and v. The problem is to determine u and v so that y satisfies the boundary and initial conditions.
Here y(x, 0)= u(x)+ v(x)= g(x) and yt(x, 0)= -cu'(x)+ cv'(x)= f(x). -u'(x)+ v'(x)= f(x)/c. Differentiating the first equation, u'(x)+ v'(x)= g'(x). Adding. 2v'(x)= f'(x)/c+ g'(x) so that v'= (f'(x)+ cg'(x))/c and v is an anti-derivative of that. Then u(x)= g(x)- v(x).
(I see no reason why "x> 0" should mean you cannot use either method. Use "D'Alembert's method" or "separation of variables" ignoring x> 0, then restrict x in the statement of the solution.)