O que o programa a seguir faz?

#include

int mystery3( const char *s1, const char *s2 ); /* protótipo */

int main( void )

{

char string1[ 80 ]; /* cria array char */

char string2[ 80 ]; /* cria array char */

printf("Digite duas strings:" );

scanf( "%s%s", string1 , string2);

printf( "O resultado é %d\n", mystery3( string1, string2 ) );

return 0; /* indica conclusão bem-sucedida */

} /* fim do main */

int mystery3( const char *s1, const char *s2 ){

for ( ; *s1 != '\0' && *s2 != '\0';s1++, s2++ ) {

if ( *s1 != *s2 ) {

return 0;

}

}

return 1;

}

Passo 1

E aí meus queridos!! Tudo bem com vocês??

Hoje vamos dividir o código em partes e entendê-lo passo a passo.

Aqui declaramos a função mystery3 (fora do main) e definimos os valores que ela recebe.

Na função mystery3 foi desenvolvido um loop do tipo for que rodará enquanto os dois ponteiros *s1 e *s2 forem diferentes de nulo. E dentro dele, temos uma função de condição if que compara os dois ponteiros que retorna 0 se os mesmos forem diferentes.

Aqui temos o nosso main, que declara os arrays do tipo char e pede aos usuários que escreva duas strings de sua preferência. Logo em seguida ele chama a função mystery3, convertendo as strings para os ponteiros e retorna seu resultado.

Ufa....terminamos por aqui!! Bora recarregar as energias e ir pra próxima!! ;-)

Resposta

O programa recebe duas strings do usuário e através da função mystery3 compara as duas para retornar 0 se elas foram diferentes ou 1 se forem iguais.