Passing function to a function in C

Gooo!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int sports_no_bieber(char *s) {
    return strstr(s, "sports") && !strstr(s, "bieber");
}
 
int books_and_art(char *s) {
    return strstr(s, "books") && !strstr(s, "art");
}
 
void find(char **a,int (*match)(char*)) {
    int loopCounter;
    puts("Search results:");
    puts("------------------------------------");
    for(loopCounter = 0 ; loopCounter < 7 ; loopCounter++) {
        if(match(a[loopCounter])){
            printf("%s\n", a[loopCounter]);
        }
    }
    puts("------------------------------------");
    puts("");
}
 
int main() {
    int (*sports_no_bieber_function)(char *s);
    sports_no_bieber_function = sports_no_bieber;
 
    int (*books_and_art_function)(char *s);
    books_and_art_function = books_and_art;
 
    char *ad[] = {
        "William: SBM GSOH likes sports, TV, dining",
        "Matt: SWM NS likes art, movies, theater",
        "Luis: SLM ND likes books, theater, art",
        "Mike: DWM DS likes trucks, sports and bieber",
        "Peter: SAM likes chess, working out and art",
        "Josh: SJM likes sports, movies and theater",
        "Jed: DBM likes theater, books and dining"
    };
 
    find(ad,sports_no_bieber_function);
    find(ad,books_and_art_function);
}

And the output:
Search results:
------------------------------------
William: SBM GSOH likes sports, TV, dining
Josh: SJM likes sports, movies and theater
------------------------------------
 
Search results:
------------------------------------
Jed: DBM likes theater, books and dining
 
------------------------------------