#include <iostream>
#include <cstring>
using namespace std;
void reverseString(char s[])
{
int length = strlen(s);
for (int i = 0; s[i] != '\0'; i++) {
char temp = s[i];
s[i] = s[length - i - 1];
s[length - i - 1] = temp;
cout << s[i]; //this ends up printing "eooe" instead of reversing the whole string
}
}
int main()
{
char a[] = "Shoe";
reverseString(a);
return 1;
}
アルゴリズムがどこで狂っているのか、それを修正するために何ができるのだろうと思っています。何かを見落としました。正しく動作します。関数は文字列を正しくリバースしません
逆のアルゴリズムは問題ありません。forループの終了後に 'cout << s;'を入れてみてください。 – jjm
@jjimは、関数を渡された引数をそのまま出力するのではなく、逆にする必要はありませんか? –
いいえ、文字列を変更しています。 – jjm