i would not doubt that one civic engine will fit into another civic. then you have to deal with other issues such as gearbox, brakes, fuel delivery system, drive shafts cv joints etc...
as for the b18 engine swap, i think it will require much more labour. custom mounts may be required.
the h22 may be a bit too big tho fit in a civic. that engine is a bit more broader than a b16.
if you like cheap thrills go for the b16. it may not produce the same HP as the other engines but it comes on harder than both the b18 and h22 when the second cam kicks in. plus its cheaper and easier to fit. probably mopre fuel efficient too.