使用下面的代码,我可以在不创建任何变量的情况下进行字符串反转。但是没有传递任何字符作为参数。
void strrev(char* p, int n)
{
while ((n -= 2) >= 0)
{
*p++ ^= *(p + n + 1) ^= *p ^= *(p + n + 1);
}
}
但是,如果,'n' 没有通过并在以下条件下进行反转,该怎么办。
条件:
1. 没有创建额外的局部/全局变量。2. 只有一次遍历 3. 不能使用 str* 例如。strlen 之类的函数。
void strrev(char* p)
{
}
添加:
我同意,没有任何额外的变量创建是不可能的。但是要实现它,要创建多少个最小附加变量。?