Shaikh Ibn ul-‘Uthaymeen rahimahullah was asked:
Question: If we know that the one asking for money asks in order to purchase cigarettes to smoke. What is the ruling?
To which the Shaikh rahimahullah answered: “We give him in food”.
He explained that voluntary charity does not have to be given in money in the first place and it can be given in anything that benefits the one in need etc. fruits. So if a person is giving voluntary charity and this poor person wants to buy cigarettes, then it is allowed to give him food that will benefit instead, or clothing, or what he needs. That is better than giving him dirhams (money)
[See: Sharh Bulugh al-Maram Kitab Zakat no. 11]
Faisal Ibn Abdul Qaadir Ibn Hassan