Everything I have read says there are two classes of homeless people in the US. The first group tend to be homeless for less than 6 months. Many in this group have fallen on hard times, lost job, lost their home or whatever. They tend to be living out of their car if they have one or be part of the system until they get back on their feet.
The second group are the long term homeless, many of these people have mental or drug issues and a lot prefer to live on the street, as crazy as that seems.
You can help the first group, but the second is generally beyond hope without mental or drug treatment hospitals. Which are becoming fewer and fewer unless you can pay for it.