Takže to já chápu takto:
#include <iostream>
#include <cstring>
const int ArSize = 20;
int main()
{
using namespace std;
cout << "Zadejte slovo: ";
string word;
cin >> word;
// fyzicky modifikuje pole
char temp;
int i, j;
for (j=0, i = word.size() - 1; j < i; --i, ++j)
{
temp = word[i];
word[i] = word[j];
word[j] = temp;
}
cout << word << "\nKonec\n";
system("PAUSE");
return 0;
}
Zadám třebas slovo CISLO
Takže j se nastaví na nulu a i se nastaví na (5-1) čtyři, poračujeme k vyhodnocování:
j < i, to znamená že 0 < 4, je to pravda, takže se provede příkaz v cyklu, pokračujeme dál:
i se zmenší o jeden, takže i teď bude 3 a j bude 1, vyhodnocení:
1 < 3, souhlasí, provede se tělo cyklu, i se opět zmenší o jeden a k jéčku se připočte jednička, takže
2 < 2, nesouhlasí, konec cyklu.
Celkem se tedy provedou 2 cykly, jenže to na převrácení slova nestačí, protože slovo CISLO obsahuje 5 písmen.