char
*
ReverseString1(
char
*
str)
... {
assert(str != NULL);
for (int i = 0, j = strlen(str) - 1; i < j; i++, j--)
...{
str[i] = str[i] - str[j];
str[j] = str[i] + str[j];
str[i] = str[j] - str[i];
}
return str;
}
char * ReverseString2( char * str)
... {
assert(str != NULL);
char *p = str;
char *q = str + strlen(str) - 1;
for (; p < q; p++, q--)
...{
*p = *p ^ *q;
*q = *p ^ *q;
*p = *p ^ *q;
}
return str;
}
... {
assert(str != NULL);
for (int i = 0, j = strlen(str) - 1; i < j; i++, j--)
...{
str[i] = str[i] - str[j];
str[j] = str[i] + str[j];
str[i] = str[j] - str[i];
}
return str;
}
char * ReverseString2( char * str)
... {
assert(str != NULL);
char *p = str;
char *q = str + strlen(str) - 1;
for (; p < q; p++, q--)
...{
*p = *p ^ *q;
*q = *p ^ *q;
*p = *p ^ *q;
}
return str;
}