Поскольку функция
int convert(char alphabet)
{
for (int i = 1; i<=26;i++)
{
if ("abcdefghijklmnopqrstuvwxyz"[i-1] == alphabet)
return i;
}
}
возвращает значение только при некоторых условиях. Что, если это условие не выполняется?!
Вы можете использовать что-то вроде std::optional<int>
, чтобы преодолеть это, но я думаю, что ваша функция должна возвращать правильное значение, а логика c неверна.
Если вы уверены, что условие будет выполнено, вы можете использовать следующее
int convert(char alphabet)
{
for (int i = 1; i<=26;i++)
{
if ("abcdefghijklmnopqrstuvwxyz"[i-1] == alphabet)
return i;
}
throw std::logic_error("not matched");
}