system() accepts a single argument, which is the command to be executed.
What you should do is:
char system_str[256];
snprintf( system_str, 256, "mplayer %s", &request );
system( system_str );
If you want a little more advice, note that your program could be a huge security problem, if it is running at a different level of access than the user. Imagine if when requested to select track, the user types in "; rm -rf /".
Typically, system() is not the best command to use. Better, and much safer, to use fork() and execl(), although that's a bit more complicated.
Your scanf() is also incorrect. You are trying to store a string (multiple byte array terminated by a null character) in a single character.
You should instead use an array
char request[256];
But you also need to abandon scanf, since it is unable to prevent buffer overflows (that is, the user enters more than 255 characters).
Better to do this:
char request[256];
fgets( request, 256, stdin );
That will at least avoid buffer overflows. You should also have error checking code which deals with the return values of all of these functions.