Looks to me like this (which in your sample above is missing a bracket)
(!strcmp(answer,"c") || !strcmp(answer,"create"))
will ALWAYS come out as true. Can you think of a value that answer can have that will simultaneously be c and create ? Because that's the only way this won't come out as true.