lo mas sencillo en este caso podría ser el uso de fscanf(), aunque muchas personas creen que solo es para leer un dato, scanf, sscanf y fscanf realmente nos hacen la vida muy sencilla, mira aqui te pongo un pequeño ejemplo de como funcionan los scanf's. espero te sea de ayuda.
    
Código c:
Ver original- #include <stdio.h> 
- #include <stdlib.h> 
- #include <strings.h> 
- #include <string.h> 
-   
-   
- int main (){ 
-     char *cadena = "Castanieda:Cenit"; 
-     char titulo[15]; 
-     char cancion[15]; 
-     bzero((char *)&titulo, sizeof(titulo)); 
-     bzero((char *)&cancion, sizeof(cancion)); 
-      
-     sscanf(- cadena , "%[^:]:%[^\n]",-  titulo ,-  cancion );
 
-     printf("Titulo: %s\n",-  titulo );
 
-     printf("Cancion: %s\n",-  cancion );
 
- } 
Mi Salida  
Código:
 Titulo: Castanieda
Cancion: Cenit