Answer S13
/* Puzzle S13 Starts with */
#include <stdio.h>
#include <stdlib.h>
int startsWith( char const *bigString, char const *start )
{
while ( *bigString && *start && *bigString == *start )
{
bigString++; start++;
}
return !*start;
}
int main(int argc, char *argv[])
{
char *trials[][2] =
{
{"a", "a"},
{"ab", "a"},
{"ab", "ab"},
{"ab", "ax"},
{"abcdef", "a"},
{"abcdef", "x"},
{"abcdef", "ab"},
{"abcdef", "abx"},
{"abcdef", "abc"},
{"abcdef", "abcx"},
{"abcdef", "abcdef"},
{"a", "ab"},
{"abc", "abcd"},
{"abc", "abcdef"},
{"abcdef", "abcdefx"},
{"abcdef", "abcdefxyz"},
{"abcdef", "fooey"},
{"abcdef", "rats"},
{"aaaaaa", "a"},
{"abcdefg", "g"},
{"applecart", "apple"},
{"green", "apple"},
{"apple", ""},
{"", "rats"},
{"",""}
};
int j; char *loc;
for ( j=0; j<sizeof(trials)/sizeof(trials[0]); j++ )
{
int result = startsWith( trials[j][0], trials[j][1] ) ;
if ( result )
printf("%s\t starts with\t%s\n", trials[j][0], trials[j][1] );
else
printf("%s\t does not start with\t%s\n", trials[j][0], trials[j][1] );
}
return 0;
}