Implemente as seguintes funções:
char *strstr(char *str1, char *str2)
Retorna o endereço de str1 em que ocorre pela primeira vez a substring str2. Caso não exista, retorna NULL.
Passo 1
Fala aí! Antes de começar, deixa eu ressaltar uma coisa que é sempre bom relembrar: em questões de programação, qualquer programa pode ser escrito de diversas maneiras, o jeito que eu escolhi fazer pode não ser o mesmo que você escolheu, e isso não quer dizer necessariamente que um deles esteja errado.
Beleza, dito isso, deixa eu te mostrar como ficou nossa resolução. Eu vou começar definindo uma outra função que vai nos auxiliar a implementar a que nos interessa de fato, olha só:

Essa função, que chamei de compare, recebe duas strings como parâmetros e passa pelos caracteres de cada uma por meio de um while. Dentro desse loop, iniciamos uma condição if para analisar se os caracteres analisados diferem. Caso isso ocorra, retornamos 0, que significa “falso”, caso o while passe por toda a string e não encontre caracteres diferentes, retornamos 1, que significa “verdadeiro”.
Passo 2
Agora, vamos passar à função que o enunciado nos pediu e ver como essa anterior vai nos ajudar.

Se liga, começamos com um while novamente, dessa vez passando por toda a string principal str1. Dentro dele, vamos iniciar um if com duas condições:
Se o caractere de str1 for igual ao caractere de str2 E a função compare retornar verdadeiro
Retorne str1;
Basicamente, com a primeira condição, queremos descobrir quando o primeiro caractere de str2 equivale a um caractere de str1. No entanto, como queremos encontrar toda a substring str2 em str1, e não somente 1 caractere, utilizamos a segunda condição com a função compare para analisar se o restante da string str2 também é encontrado em str1.
Caso ambas as condições sejam satisfeitas, passamos para a linha 25, que irá retornar str1 a partir da posição em que str2 foi encontrada. Caso nada disso ocorra, retornamos NULL lá no final.
Resposta
