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.