Как исправить ошибку error: invalid type argument of unary ‘*’?

Замена слова в строке использую функцию и ссылки
#include <string>
#include <stdio.h>
#include <iostream>
using namespace std;

void WordReplace(string *s, int ind, string rstr) {
    ind = *s->find(rstr);
    cout << ind;
}

int main()
{
    int index;
    string S1 = "Я обязательно прийду";
    string str1 = "обязательно";
    WordReplace(&S1, index, str1);
}

Ошибка:
main.cpp: In function ‘void WordReplace(std::string*, int, std::string)’:
main.cpp:7:24: error: invalid type argument of unary ‘*’ (have ‘std::__cxx11::basic_string::size_type’ {aka ‘long unsigned int’})
7 | ind = *s->find(rstr);
|
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Если вы разыменовываете указатель, то там должна быть точка вместо стрелочки (и скобки вокруг *s). Если вы хотите использовать ->, то вам не надо разыменовывать указатель.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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