Во-первых, очень маловероятно, что вы получаете ошибку, о которой говорите, что получаете.Источником проблемы является тот факт, что вы пытаетесь return position
, где position
является int
, из функции, объявленной для возврата bool
.Что вы пытаетесь этим сделать?Почему вы пытаетесь вернуть int
из bool
функции?
В любом случае это не является недопустимым, то есть int
будет неявно преобразовано в bool
в соответствии с логическими правилами преобразования языка C ++.Некоторые компиляторы выдают предупреждение в таких случаях, но не ошибку.В любом случае, безусловно, это не то, что вы хотели.
Во-вторых, из объявления вашей функции совершенно очевидно, что вы намеревались вернуть индекс через параметр foundPosition
(объявленный как int &
),Оператор return
в конце функции, очевидно, должен был делать return found
, а не return position
.И все же в своем коде вы полностью игнорируете существование foundPosition
.Зачем?Почему вы пытаетесь return
указать позицию, а не отправлять ее через параметр foundPosition
, как было изначально задумано?Это ваш код?
В-третьих (как @Blastfurnace уже отмечал в комментариях), ваши ==
и >
сравнения не делают то, что вы думаете, что они делают.Вы не можете сравнивать строки в стиле C, используя встроенные операторы сравнения.Вы должны использовать strcmp
вместо.