String Pattern Matching: Write a function that checks for a given pattern at the end of a given string
In other words, Write a function, a variant of strstr that takes in 2 strings str1 and str2 and returns true if str2 occurs at the end of the string str1, and false otherwise.
bool str_str_end(char * str1, char * str2)
{
// Store the base pointers of both strings
char* beginStr1 = str1;
char* beingStr2 = str2;
// Move to the end of the strings
while(*str1++);
while(*str2++);
for(; *str1 == *str2; str1--, Str2--)
{
If( str2 == beginStr2
|| str1 == beingStr1)
{
break;
}
}
return If(*str1 == *str2
&& str2 == beginStr2
&& *str1 != 0);
}
Save the base addresses of the strings and then traverse to the end of the stings. To check if the string str2 occurs at the end of the string str1, start comparing characters from the end of the strings and move backwards. The function returns true when
The above conditions are required so that the loops do not run in an infinite loop.