Я знаю, что конец возврата неверен, я собираюсь использовать один из моих указателей, чтобы идти в конец, а затем вернуться к размеру строки, чтобы вернуть обратную строку. Есть ли более эффективный способ сделать это? Кроме того, что еще более важно, я получаю ошибку времени выполнения здесь? http://ideone.com/IzvhmWОшибка времени выполнения обратная строка
#include <iostream>
#include <string>
using namespace std;
string Reverse(char * word)
{
char *end = word;
while(*end)
++end;
--end;
char tem;
while(word < end) {
tem = *word;
*word = *end;
*end = tem; //debug indicated the error at this line
++word;
--end;
}
return end;
}
int main(int argc, char * argv[]) {
string s = Reverse("piegh");
cout << s << endl;
return 0;
}
Просто прочитать сообщения об ошибках вашего компилятора! 'x.cpp: 27: 31: warning: устаревшее преобразование из строковой константы в 'char *' [-Wwrite-strings]' Предупреждение активируется, даже не указывая -Wall. – kay
Действительно. Предупреждения существуют с определенной целью и никогда не должны игнорироваться! Это предупреждение должно было быть обязательно предоставлено как часть этого вопроса. – Sebivor