编写函数reverse_string,他的原型如下:
void reverse_string(char *string)
函数把参数字符串中的字符反向排列,请使用指针而不是数组下标,不要使用任何C函数库中用于操作字符串的函数
提示:不需要声明一个局部数组来临时存储参数字符串
方法一
void reverse_string(char *string)
{
int len = 0;
char temp;
char *p = string;
while(*string != '\0')
{
string++;
}
string--;
while(*p != *string)
{
temp = *p;
*p = *string;
*string = temp;
p++;
string--;
}
}
方法二
void reverse_string(char *string)
{
char *cp = string;
int i=0;
while(*str!= '/0')
{
string++;
i++;
}
i /= 2;
string--;
while(i-- > 0)
{
*string ^= *cp;
*cp ^= *string;
*string ^= *cp;
string--;
cp++;
}
}
说明:
算法中运用了:a ^ a = 0 和 a ^ 0 = a 的特性。以此来进行变量值的交换,可以避免使用额外的临时变量