Positions are 0-based
string::npos is the "non-existent" position.
string::npos is really -1.
The string counts chars, but no null terminator.
As a count, string::npos means end-of-string.