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.