O garoto / A garota - generally used for teenagers, young boys and girls.
O rapaz is used in Brazil though Rapariga is not. As others mentioned, it is offensive.
O menino / A menina - generally used for children
O moço / A moça - generally used for young adults
But there are always exceptions. For instance, if I am walking the streets and I see a man and I would like to know an information, I'd say " Ei, moço... quantas horas por favor,? " even if he is 40 years old.
Or I could say " Estou saindo com uma menina aí " which means I'm dating a young lady, not necessarily a child.
Hope it helps!