Проблема в том, что normal[num]
является символом.append()
не имеет перегрузки для символов.
Вы можете использовать inverted.push_back(normal[num]);
См. API строки .
Я должен добавитьпара других заметок:
0) Почему вы возвращаете int
из invert()
?inverted
- это строка, поэтому вы должны вернуть строку:
`string invert(string normal);`
1) Вместо того, чтобы использовать num
для итерации, вы можете использовать reverse_iterators
:
for (string::reverse_iterator c = normal.rbegin(); c!=normal.rend(); ++c) {
inverted.push_back(*c);
}
2) При передаче строк в функции, которые не модифицируются в функции, вы должны передавать по ссылке, чтобы избежать лишних копий строк.
string invert(const string &normal);
3) Вы пересекаете 0..argc
, поэтому ваши перевернутые строки будут обратными от ожидаемых, если я правильно понимаю ваши требования.