リターンエンドが正しくないことはわかっています。ポインタの1つを使用してエンドに移動し、文字列のサイズだけ戻って反転した文字列を返すことを考えています。それを行うためのより効率的な方法はありますか?また、さらに重要なことに、ここで実行時エラーが発生していますか?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;
}