@using_namespace_boring

Не работает алгоритм std find для строки?

string str{"fdsfs dfgdf dgf"};
auto find=std::find(begin(str),end(str),"  ");

Этот код выдает ошибку - нельзя сравнивать указатель и int
В чем проблема?
  • Вопрос задан
  • 310 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Вы вызываете std::find, который призван искать элемент в коллекции. А пытаетесь искать там строку. Это все почти компилируется, потому что строка - это коллекция символов, по ней можно было бы искать один символ. Но вы передаете туда указатель (ваша строковая константа). Компилятор не может преобразовать его в символ и на это ругается.

Для того, что вам надо - есть std::string::find. Т.е. вам надо вызвать str.find(" ").

Или же ищите один символ. Только не забудьте algorithm включить, а то непонятные ошибки с итераторами полезут.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы