C program with 10 options
I can't be very detailed here because I haven't worked in C lately. But basically, yes, you should move more of the code out of the if statements into the breakout functions.
Specifically, each break-out function should have the same signature (type/arity). Based on the examples you've given so far, these appear to be quite open-ended effectful subroutines, each comparable to a mini main, so they might as well have signature ()-&gt;int. Or maybe there'll be enough structure to their behavior that you can be more specific than that, IDK.
If you're going to print out the fancy headers, abstract that away into a helper function.
Anyway, you might consider even getting rid of the if itself, in favor of a lookup-table of functions. Exactly how to implement that will depend a bit on the context; it's not something I've ever done in C.