Answer S11

/* Puzzle S11 -- Are two strings equal? */

#include <stdio.h>
#include <stdlib.h>

int areEqual( char const *left, char const *right )
{
  while ( *left && *right && *left == *right ) {left++; right++;}
  return *left==*right;
}

int main(int argc, char *argv[])
{
 char *trials[][2] =
  {
    {"a", "a"},
    {"a", "f"},
    {"abc", "abc"},
    {"abc", "def"},
    {"abcdef", "abcdef"},
    {"abcdef", "aaaaaa"},
    {"abcdeff", "abcdef"},
    {"abcdef", "xabcdef"},
    {"xabcdef", "abcdef"},
    {"abcdef", "rats"},
    {"abbccf", "cc"},
    {"abcdefg", "g"},
    {"apple", ""},
    {"", "apple"},
    {"",""},
    {"green", "green"},
    {"ASBC", "ASBC"},
    {"    ", "    "},
    {"12345", "12345"},
    {"++-!@#", "++-!@#"},
    {"tab\ttab", "tab\ttab"},
   };

  int j; char *loc;
  for ( j=0; j<sizeof(trials)/sizeof(trials[0]); j++ )
  {
    printf("%s\t%s\t", trials[j][0], trials[j][1] );
    if ( areEqual( trials[j][0], trials[j][1] ) )
      printf("are     equal\n");
    else
      printf("are not equal\n");
  }
  
  return 0;
}


Back to Puzzle Home