====================================================================== Exercise 2.5 - return the first location in the string s1 comparing s2 ====================================================================== Question ======== Write the function any(s1,s2), which returns the first location in a string s1 where any character from the string s2 occurs, or -1 if s1 contains no characters from s2. (The standard library function strpbrk does the same job but returns a pointer to the location.) .. literalinclude:: cprogs/ex_2.5_any.c :language: c Explanation =========== The important part of the program is the function `any` which takes two strings `s1` and `s2` and tries to find if any character in `s2` matches `s1`. We set a **flag**, `check_next_char` which is toggled to **0** if we find the match, otherwise we have it as 1. The first for loop iterates through all the characters in s1 while the condition `check_next_char` is 1. In the second for loop, if we find that a char in s2 matches s1, that is `s2[j] == s1[i]` and s2 has not reached EOL, then we set check_next_char to 0. That is we found a match at **i** and we return that. If we dont find a match in s2, we increment i and take the next character from s1. If dont find a match at all, then we return -1. Visualization ============= .. raw:: html Try It Out ========== .. raw:: html