不使用第三个变量逆置字符串

来源:互联网 发布:bi开发工程师转行java 编辑:程序博客网 时间:2024/06/06 09:09
#include <stdio.h>#include <string.h>void swap_function(char *head,char *end){printf("head = %c.\n",*head);printf("end = %c.\n",*end);while(head < end){printf("*head = %c.\n",*head);*head = *head^*end;*end = *head^*end; *head = *head^*end;head++;end--;}} int main(void){/*int a = 1,b = 2;swap_function(&a,&b);printf("a = %d,b = %d.\n",a,b);*/char string[] = "olleh";char *end;end = string + strlen(string) - 1;printf("1.\n");swap_function(string,end);printf("2.\n");printf("string = %s.\n",string);}

这是我前几天的面试题,题目要求是在不使用第三个变量的同时,将两个变量进行交换。在这里我对进行了一下扩展,实现了将一个简单的字符串进行逆置。如果在整个的字符串中存在空格譬如:hello world,这种要先行字符串的整体的逆置,在对每一部分进行逆置 。

该程序的核心主要就是通过异或进行两个字符的交换,不懂的可以自行百度。

原创粉丝点击