if(tome[active].mName == tome[compare].mName
What type is the mName field? If it is char * or char array, that is NOT how you compare strings.
sprintf (monsterBuffer, ' %d', m);
Single quotes are for SINGLE characters. Double quotes are for strings.
Since m can conceivably be as high as 12, your monstoerBuffer is too small. 2 digits plus a space plus a terminating NULL is NOT going to fit in a 3 element array.