I like the idea, but can't see myself being able to contribute much. I don't speak C & it looks from the substr code you have posted as though C will be essential. The reason I don't speak C is that I've never had a reason to want to learn it. This might provide such a reason, but I find it hard to imagine that this would be an appropriate project for a total beginner. I'm always interested in algorithmic puzzles, so if anything were flagged as "no C required" or something conveying the same message, I'd probably try to get involved.
Regards,
John Davies