#include /
//用指针实现字符串的逆序
char* reverse_pointer(char* str)
{
char* head = str;
char* end = str;
char* temp = str;//保存str的地址
char ch;
printf("head:%p\n", head);
//将end指针指向string的结束符'\0'
while( *end != '\0' )
{
end++;
}
printf("end:%p\n", end);
//将end指针指向string结束符的前一个位置
end = end -1;
printf("end2:%p\n", end);
//当head指针的地址 < end指针的地址时
//就交换head,end所指向的内容
while(head < end)
{
ch = *end;
*end = *head;
*head = ch;
head++;//head指针走向下一个
end--; //end指针走向上一个
}
return temp;
}
/
//字符串逆序输出的递归算法
//方法1
void reverse_print(char *str)
{
if (*str == '\0') return;
reverse_print(str+1);
printf("%c", *str);
}
//方法2
void reverse_print2(char *str)
{
for(int i=strlen(str); i>0; i--)
{
printf("%c", *(str+i-1) );
}
}
/
// 数组方法实现
// 函数参数要为数组
void reverse_array(char str[])
{
char ch;
int len = strlen(str);
// (len/2)找到字符串的中点,交换以中点对称的数组元素
for(int i=0; i