Right. The OP mentioned std::find as well, but my guess is that was a typo (see similar typo with str::erase). Either way, I would use the member function version and add the size_type to the begin() iterator as I showed. Prefer the member function over the generic algorithm in general, and the addition to the iterator isn't a big enough deal to outweigh that advice in this case.

>> Unless the erase function is not overloaded for size_type.
The other option is s.erase(s.find(...), 1). The 1 is to indicate a single character at the specified location. This might actually be the best option.