I am sure those who are engaged in any sort of charity work have to face the difficult question of how to best help those in need. Certainly there are many people in modern society who need help in finding and keeping accomodation, especially those with medical conditions or illnesses (including mental ones) which prevent them from obtaining and retaining employment and earning enough to own their own home, or rent their own accomodation. Given the booming property prices in many parts of the world, there are many forms of grave social injustice where decent people are being priced out of being able to afford decent and affordable housing. So, no doubt many who are homeless or find trouble finding stable accomodation, find themselves in that situation due to grave social injustice and greedy investors and landlords.
Nevertheless, there are also many homeless who through things like drug addiction or other activities find themselves on the margins of society and can’t find accomodation. Giving these people money is only likely to be wasted immediately on the source of their addiction, whichever it is, and might do more harm than good. I’m sure charities on the ground know how to best help these people.
Therefore it is probably best to give money to charities whose jobs are to help those in need, whether they are placed in need due to unjust social circumstances or by their own mistakes. There are plenty of Catholic charities who do very good work in this (and non-Catholic ones as well).
Still, giving a person a blanket or some change to buy themselves some food may be just what they need. One should decide according to one’s own conscience when faced with such a situation, what the best response is.