下面的代码返回一个反向字符串。例如,它接受输入“ 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()
在for循环中被2除?str[i]
和str[j]
的变化是什么?我想使用它来处理值,但是我不知道从哪里开始。我使用的入门教科书没有涵盖这一点。
答案 0 :(得分:2)
作为答案:
i
和j
彼此相对(分别从开头或结尾开始)。