Tu peux regarder du côté du codage d'huffman pour le fonctionnement. Si tu n'es pas bloqué sur le langage, ça se fait immédiatement en python pour la compression en bz2, gz...
En C, tu peux toujours passer par un execvp qui appelle une commande de compression (genre tar, gunzip,... sous linux), ou recoder l'outil de compression/décompression, car je ne crois pas qu'il existe de commandes toutes prêtes :p
Enfin, il reste la possibilité de faire un script (script bash sous linux par exemple) qui appelle les bonnes commandes de compression. Tu dois pouvoir faire des choses voisines avec un bat sous windows.
Bonne chance.