私のコンパイラは、次のコードについていくつか気に入らない点があります。どんな助けでも大歓迎です。私はプログラミング初心者なので、遠慮なく批判してください。私はあなたたちが厳しいことを知っています。
// Method 2, the additive swap, explained inside.
void strrev2(std::string& str) {
unsigned len = str.size();
for (unsigned i = 0, j = len - 1; i < j; i++, j--) {
short a = (int)str[i]; // a is the ASCII value of the i-th character of the string
short b = (int)str[j]; // b is the ASCII value of the j-th character of the string
// Current value of a Current value of b
a = a + b; // a + b b
b = a - b; // a + b a
a = a - b; // b a
}
str[i] = (char)a;
str[j] = (char)b;
}