Проблемы:
1. У вас есть ;
после цикла for
, тело цикла никогда не запускается.
2. <=
здесь неверно, так как scrambeledword.length () находится вне диапазона. Вместо этого используйте !=
или <
.
3. Вам нужно либо назначить что-то для input
перед добавлением его в вывод, либо вообще избавиться от него.
4. Как указал @Aconcagua, стоит отметить, что я удалил ваше объявление index
из области действия функции и добавил его только в область действия for
цикла. Если вы также подумаете об этом, компилятор выдаст ошибку (поскольку она не будет объявлена вне области действия for
), и вы заметите проблему ;
.
Фиксированная версия:
string extract(const string &scrambeledword){ // copying strings is expensive
// unsigned int index; // obsolete
string output;
// string input= " "; // obsolete
for (size_t index = 0; index != scrambeledword.length(); ++index) // `<=` would be wrong since scrambeledword.length() is out of range
{
if (index % 2 == 0)
{
output += scrambeledword[index];
// cout << output; // obsolete. If you just want the characters, print scrambeledword[index]
cout << scrambeledword[index];
}
}
cout << endl; // break the line for better readability
return output;
}