Код ниже возвращает обратную строку.Например, он принимает входные данные "codebyte
" и возвращает "etybedoc
".
string FirstReverse(string str) {
for(int i = 0, j = str.length() - 1; i < str.length() / 2; i++, j--)
{
str[i]^=str[j]^=str[i]^=str[j];
}
return str;
}
Я заблудился относительно того, как работает эта функция:
- Почему
^=
-оператор используется?Это побитовый оператор, но почему он используется здесь? - Почему
str.length()
делится на 2 в цикле for? - Что с изменением
str[i]
и str[j]
?
Я хочу работать со значениями, но не знаю, с чего начать.Вводный учебник, который я использовал, не охватывал это.