Its a matter of choice and your need library functions are linked to application programs and always execute in user space whereas system call executes at the kernal space and can interact directly with the hardware.
I dont know how to answer this question so putting my view point only also one thing to remember is the time consumed to execute a library function which does not in-turn invoke a system call is always lesser than the time consumed to execute a system call because the application program need not context switch between user space and kernel space.