Além de procurar por caracteres, a biblioteca string.h também possui uma função para procurar por uma substring dentro de uma string, a função strstr().
Esta função também retorna um ponteiro para o início da substring, caso encontre, ou NULL caso contrário.
Não se preocupe a a aritmética de ponteiros feita no exemplo a seguir para imprimir o caracter apontado pelo ponteiro retornado pela função e os dois caracteres seguintes. Mais a frente teremos um módulo sobre ponteiros e aprenderemos esse conteúdo em detalhes.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char palavra[50] = {"Bom dia simpatia!"};
char str[] = {"dia"};
char *ponteiro;
// procura pela string str dentro da string palavra
ponteiro = strstr(palavra, str);
// se ponteiro for diferente de null, imprime 3 caracteres (dia)
if(ponteiro)
printf("\n%c%c%c\n", *ponteiro, *(ponteiro+1), *(ponteiro+2));
else
printf("\nPonteiro nulo.\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char palavra[50] = {"Bom dia simpatia!"};
char str[] = {"dia"};
char *ponteiro;
// procura pela string str dentro da string palavra
ponteiro = strstr(palavra, str);
// se ponteiro for diferente de null, imprime 3 caracteres (dia)
if(ponteiro)
printf("\n%c%c%c\n", *ponteiro, *(ponteiro+1), *(ponteiro+2));
else
printf("\nPonteiro nulo.\n");
return 0;
}
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char palavra[50] = {"Bom dia simpatia!"}; char str[] = {"dia"}; char *ponteiro; // procura pela string str dentro da string palavra ponteiro = strstr(palavra, str); // se ponteiro for diferente de null, imprime 3 caracteres (dia) if(ponteiro) printf("\n%c%c%c\n", *ponteiro, *(ponteiro+1), *(ponteiro+2)); else printf("\nPonteiro nulo.\n"); return 0; }