In rete non c'è molto perché esistono delle funzioni specifiche già funzionanti per realizzare questa cosa (link), a che serve rifarla da zero?
Capisco che tu voglia farlo per un progetto da presentare all'esame, ma nessuno si metterà a riscrivere funzioni che già fanno il loro dovere.