Skip to content
MeowMeow - A Toy File Encoder/Decoder
C Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
articles Update Jul 9, 2019
.gitignore ignore object files and target binaries Jun 25, 2019
Makefile new articles, bug fixes Jun 28, 2019 Update Jul 1, 2019
main.c Update main.c Jul 29, 2019
main.h main.[ch] clean ups after I slept on it. Jun 25, 2019
mmdecode.c Update mmdecode.c Aug 1, 2019
mmdecode.h Update mmdecode.h Aug 1, 2019
mmencode.h codec working now Jun 26, 2019
table.h codec working now Jun 26, 2019

MeowMeow - a file encoder/decoder

This project implements two commands in C, meow and unmeow, that will encode and decode a file in the MeowMeow encoding scheme. While not intended to be useful in and of itself, the program is an example of how to structure a small to medium sized C command-line program.


  • C compiler
  • GNU make


  1. Clone
   $ git clone
  1. Compile
   $ make
  1. Run
   $ ./meow < clear_text > meow_text
   $ ./unmeow < meow_text | diff clear_text

MeowMeow Encoding Scheme

The MeowMeow encoding scheme is direct rip-off of another encoding scheme, MooMoo Encode. In short, each byte in file is encoded into a string "meowmeow" where uppercase indicates a 1 and lowercase is a zero, in this case the string encodes a zero. Consider these three bytes:

   unsigned char zeros = 0x0;
   unsigned char ones = 0xff;
   unsigned char camel = 0xA5;
  • The value in zeros encodes to "meowmeow".
  • The value in ones encodes to "MEOWMEOW".
  • The value in camel encodes to "MeOwmEoW.
You can’t perform that action at this time.