As you are using a lower-level language, I suggest using a lower-level technique; it should impress your teacher very much.
In the ASCII encoding, the difference between uppercase letters and their lowercase counterparts, is one bit.
For example:
A == 65 == 1000001
a == 97 == 1100001
__________________
XOR 32 0100000
I'm sure you can easily implement a function to test two characters, and if they are letters, then to perform a bit-wise comparison that ignores that one bit.
Your overall implementation will still need to ignore punctuation and such.
Go hang a salami, I'm a lasagna hog!