I have given cash at times, but sometimes I will walk over to a restaurant like subway or something not full of trash food, and purchase a gift card. Last summer, I cane across a homeless man on a corner near some stores, restaurants, and shopping centers. He was a very sweet man. We talked for probably an hour. I gave him a Subway gift card enough for 2 or 3 meals. It would feed him and also get him inside, paying for food and sitting in a cool place on a very hot day. We were in the midst of weeks over 100° ....115°+ heat indexes. (I had a heat stroke last summer, it was horrific.)
So bottom line ...if they're near a restaurant, get them a gift card for food. Or give them a WM gift card, etc.