It's weird to give someone money and care what they do with it unless you're expecting them to pay you back someday. You're giving it away, so it's expendable to you, and you'll probably never interact with the person again, so it's odd to care about the specifics beyond "I hope this helps."
You'll never give them enough money to actually change their situation, and that's not your fault but it's also not your problem, it's theirs. If they think they need a cigarette more than a sandwich, who am I to tell them they are wrong? It's their money now, not mine.