Buona sera..

Ho scritto un programma che richiede l'immissione di una stringa e di un carattere e stampa il numero di occorrenze di quel carattere senza utilizzare le funzioni della libreria string.h

codice:
#include <stdio.h>

char a[100];
char search[1];

main()
{
        int i, n, k, j;
        int counter;

        for(i=0; (a[i]=getchar()) != '\n'; i++)
                        ;

        a[i]='\0';


        k=0;    /*calcolo lunghezza stringa*/
        for(i=0; a[i] != '\0'; i++){
                k++;
        }


        printf("inserisci carattere\n");
                for(j=0; (search[j]=getchar()) != '\n'; j++)
                        ;
                search[j]='\0';



                counter=0;
                for(i=j=0; i<n; i++)
                {
                if(a[i] == search[j])
                                counter++;
                }



                printf("%d\n", counter);

        return 0;
}
il problema che il contatore che dovrebbe incrementarsi trovando quel determinato carattere non si incrementa. Come mai?

PS: il metodo per definire la lunghezza della stringa è valido? a me pare funzionare bene!

grazie per gli eventuali chiarimenti.