A biblioteca string.h também já possui duas funções para procurar um caracter dentro de uma string, as funções strchr() e strrchr().
A função strchr ()retorna um ponteiro para a primeira ocorrência do caracter procurado ou NULL caso não encontre.
A função strrchr() retorna um ponteiro para a última ocorrência do caracter procurado ou NULL caso não encontre.
No trecho de código a seguir é apresentado um exemplo com as duas funções.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char palavra[50] = {"abacate"};
char *letra;
// primeira ocorrência da letra a
letra = strchr(palavra, 'a');
printf("\n%c\n", *letra); // imprime a letra a
printf("\n%c\n", *(letra + 1)); // imprime a letra b
printf("\n%c\n", *(letra + 2)); // imprime a segunda letra a
letra = strrchr(palavra, 'a');
printf("\n%c\n", *letra); // imprime a última letra a
printf("\n%c\n", *(letra + 1)); // imprime a letra t
printf("\n%c\n", *(letra + 2)); // imprime a letra e
return 0;
}
Por enquanto não se preocupe com a operação letra + 1 e letra + 2 entre parênteses. Como as funções retornam um ponteiro, fizemos aí uma aritmética de ponteiros para imprimir os caracteres seguintes, confirmando que o retorno das funções estavam corretos. Mais a frente teremos um módulo apenas sobre ponteiros e aprenderemos em detalhes esta operação.
