aula 139

Como encontrar uma substring com a função strstr() em C

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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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;
}


Deixe um comentário

dezoito − catorze =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.