The best thing you can do for a homeless person is to give them the name and location of charities that can help them.
I don't know so much about America, as things vary so much between individual states, but there are countless charities and support groups for homeless people in the UK, whether that's support in having somewhere safe to stay, getting a job, getting food, having medical care, or getting housing.
There's very little reason for someone to live on the streets.
And often times people who do have caused their own situation through drug use, or quite often there are buskers who do have homes of some form to go to.
Give them food sure, if you want to feel good.
Don't give them money as you can't trust strangers.
If you really want to be helpful, then inform them of local support for them.
If they don't care either way, then there's likely no helping them. They're in their current position because they want to be.