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;
}