Do you have to be an American citizen to marry an American?

No. Non-US citizens can marry US citizens. This does not automatically make them US citizens as well, though it does generally grant them permanent resident status ("permanent" as long as they stay married, anyway).