Помогите си

помогите си
Заголовок: unsigned WordIndex(string1 s, unsigned n).
Назначение: возврат позиции на чала в строке s слова с номером n.
Входные параметры: s,n.
Выходные параметры: нет.
как вы это понимаете?

  • Начну с того, что типа данных string1 нет, если его не задать явно. Функция должна иметь вид:

    unsigned WordIndex(string s, unsigned n)

    Функция принимает строку и порядковый номер того слова, индекс начала которого нужно найти и вернуть. Выходных параметров нет, потому-что все параметры в функцию передаются по значению, а для выходных требуется по ссылкам либо указателям. Ниже код того, как работает эта функция:

    string str = "Степан Иванович Иванов";
    unsigned index = WordIndex(str, 3); // находим индекс начала фамилии
    cout < < " index = " << index << endl; // index = 16 Но так как слова с заданным числом может не оказаться, индекс 0 соответствует первому слову строки, а возвращаемый параметр - целое без знака, то возникает проблема - что возвращать?? В этом случае правильным было бы изменить возвращаемое значение на целое со знаком, int WordIndex(string s, unsigned n); string str = "Степан Иванович Иванов"; unsigned index = WordIndex(str, 100500); // находим индекс начала фамилии cout << " index = " << index << endl; // index = -1, что приведёт к выходу за пределы и можно будет сгенерировать исключение либо использовать выходной параметр логического типа со значением по умолчанию bool x = true; unsigned WordIndex(string s, unsigned n, bool & y = x); в этом случае если в функции нет слова с заданным значение, то переменной y следует присвоить false Тогда... string str = "Степан Иванович Иванов"; unsigned index = WordIndex(str, 100500); if (x) cout << " index = " << index << endl; else cout << " Error!n"