Binary search on cstrings
You can assume that the implementation of strcmp() is not stupid.  A lot of code out there relies on strcmp(), so rest assured that a lot of work has gone into optimizing it.  Nevertheless, you don't want to call it twice per iteration through your loop.

Interestingly, len is the only parameter that doesn't need to be declared const, since it is passed by value.  In contrast, scope and find are passed by reference, so a promise that binSrch() won't alter them would be helpful.

At the end, you don't need to test for first &gt; last before returning false.  The only way you can get past the while loop is with first &gt; last.

You have an unused variable c.  Avoid such mistakes by getting into the habit of assigning right away:

int first = 0,
    last = len - 1,
    middle = (first + last) / 2;


I think the braces on your else if look weird.  Either remove them, or put them everywhere consistently.  (I prefer the latter.)