f = lambda w,s:s.translate({ord(t[0]):t for t in(w+' '+w.title()).split()}) print(f('abra cadabra', ''.join(map(chr,range(32,127)))))
Standard input is empty
!"#$%&'()*+,-./0123456789:;<=>?@AbraBCadabraDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abrabcadabradefghijklmnopqrstuvwxyz{|}~