#include <stdio.h>

// Retorna 0 se as strings sao iguais, -1 se forem diferentes
int CompareStrings(char* a, char* b);

int main()
{
   // Ambas as strings tem quebras de linha
   char firstTestA[] = "A casa era mais bonita \ndo que \nele imaginou\n";
   char firstTestB[] = "A\n casa era mais bonita do que ele imaginou\n";

   int comp = CompareStrings(firstTestA, firstTestB);
   printf("Primeiro teste: %d\n", comp);

   // Uma das strings tem quebras de linha
   char secondTestA[] = "A casa era mais bonita \ndo que \nele imaginou\n";
   char secondTestB[] = "A casa era mais bonita do que ele imaginou";

   comp = CompareStrings(secondTestA, secondTestB);
   printf("Segundo teste: %d\n", comp);

   // Nenhuma das strings tem quebra de linha
   char thirdTestA[] = "A casa era mais bonita do que ele imaginou";
   char thirdTestB[] = "A casa era mais bonita do que ele imaginou";

   comp = CompareStrings(thirdTestA, thirdTestB);
   printf("Terceiro teste: %d\n", comp);

   system("pause");
   return 0; 
}

int CompareStrings(char* a, char* b)
{
    int indexA, indexB;
    for(indexA = 0, indexB = 0; indexA < strlen(a) || indexB < strlen(b); ++indexA, ++indexB)
    {
        if(a[indexA] == '\n')
        {
            if(++indexA >= strlen(a))
                indexA = strlen(a);
        }

        if(b[indexB] == '\n')
        {
            if(++indexB >= strlen(b))
                indexB = strlen(b);
        }

        if((a[indexA] == '\0' || b[indexB] == '\0') || (a[indexA] != b[indexB]))
            break;
    }

    // Se ambos terminaram, as strings contidas são iguais.
    if( a[indexA] == '\0' && b[indexB] == '\0' )
        return 0;
    else
        return -1;
}
