Pedes ao utilizador a frase e guardas numa string. Pedes a palavra a procurar e guardas noutra.
Fazes split á string que contem a frase, e guardas cada uma das palavras num vector de strings.
Depois percorres o vector. Se o comprimento da palavra na posição actual do vector for menor que o comprimento da palavra a pesquisar, passas á próxima posição do vector.
Senão, comparas o primeiro caracter da palavra dessa posição do vector, com o primeiro caracter da palavra a pesquisar. Se forem iguais, passas ao caracter seguinte de cada uma das palavras e comparas. Se forem iguais outra vez, passas ao seguinte. E isto até ao fim dos caracteres da palavra a pesquisar. Se for tudo igual, é só incrementar um contador.
Senão, quando um caracter não for igual, passas ao segundo caracter da palavra do vector, e começas a comparar de novo com os caracteres da palavra a pesquisar.
Penso que sej mais ou menos isto. Se fosse em Java, punha aqui o código, mas em C, não sei quais são as funções equivalentes.
EDIT: Vou fazer em Java, e depois tentar passar para algoritmo, e coloco-o aqui.