I assume that input is a std::string
If you take a look at the documentation of std::string::find, you'll find that it returns the index of the found character; not an iterator. In order to use the iterator constructor, you must use:
auto str = std::string(input.begin() + input.find(' '), input.end());
Alternatively, you could use substr member of input:
auto str = input.substr(input.find(' '));
The +1 and -1 in your example are confusing. If you add 1 to first, then you get the substring starting after the found character, not starting from the character. If you subtract 1 from the end, you copy until one before the last character, not up to the end of the string.
Note that you probably also need to also handle the case where the character is not found. The constructor approach (as I've implemented) would have undefined behaviour. The substr approach would throw an exception.