/* 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"); } system("PAUSE"); return 0; }
Comments: