Объясните программу, не могу понять, может в ней ошибки есть? С++ - Компьютерные вопросы
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Объясните программу, не могу понять, может в ней ошибки есть? С++

Регистрация
6 Ноя 2013
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Я не понимаю смысл (ret==s.size()) и для чего мы определяем размер строки вначале.... тут все правильно в ней, нет опечаток?

string::size_type find_char(const string &s, char c, string::size_type &occurs)

{

auto ret=s.size();
occurs=0;
for(decltype(ret) i=0; i!=s.size();++i)
{

if(s==c)

{

if(ret==s.size())
ret=i;
++occurs;

}

}
return ret;
}
 
Регистрация
2 Апр 2013
Сообщения
107
Репутация
0
Спасибо
0
Монет
0
смысл его сводится к тому, равенство это случается лишь однажды, при первом совпадении. С тем же успехом можно было поставить начальное значение -1 и сравнивать if (ret < 0)
 
Регистрация
12 Ноя 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
Для начала - расскажи-ка, а что эта функция должна делать? Как можно определить, что "все правильно в ней, нет опечаток", если вообще неизвестно, что тут должно быть? Проверка ret==s.size() используется, потому что при первом сравнении значение ret изменяется.
 
Сверху Снизу