交换代码大全

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void change1(char **s1,char **s2){
	char *temp=*s1;
 	*s1=*s2;
	*s2=temp;
}//交换指针s1,s2 

void change2(char *str1,char *str2){
	char temp[strlen(str1)+1];
	strcpy(temp,str1);
	strcpy(str1,str2);
	strcpy(str2,temp);
}//交换两个字符串 

void change3(int **ppa,int **ppb){
	int *temp=*ppa;//*ppa取到pa的值 
	*ppa=*ppb;
	*ppb=temp; 
}//pa,pb两个指针地址交换 

void change4(int *a,int *b){
	int temp=*a;
	*a=*b;
	*b=temp;
} // 交换a,b 
/*
void *swap4(int *pa,int *pb){
	int *p=malloc(4);
	*p=*pa;
	*pa=*pb;
	*pb=*p;
	free(p);
}//这样也行
*/

void swap1(char **str){
	char *pt=str[0];
	str[0]=str[1];
	str[1]=pt;	
} 

void swap2(char (*s)[10]){
	char str[strlen(s[1])+1];
	strcpy(str,s[1]);
	strcpy(s[1],s[0]);
	strcpy(s[0],str);
}


int main(int argc, char *argv[]) {
	//交换a,b 
	int a=10,b=20;
	change4(&a,&b);
	printf("a:%d,b:%d\n",a,b);

	//交换指针pa,pb 
	int *pa=&a,*pb=&b;
	change3(&pa,&pb);
	printf("pa:%p,pb:%p\n",pa,pb);
	
	//交换指针形式的一维字符数组 
	char *s1="Hello",*s2="world";
	change1(&s1,&s2);
	printf("s1:%s,s2:%s\n",s1,s2);
	
	//交换一维字符数组 
	char str1[10]="Hello",str2[10]="world";
	change2(str1,str2);
	printf("str1:%s,str2:%s\n",str1,str2);	
	
	//把str[0] ,str[2]的两个交换一下   这是个指针数组,数组里面存的是指针 
	char * str[2]={"Hello","world"};
	swap1(str);
	printf("str1=%s str2=%s\n",str[0],str[1]);
	
	//把s[0]s[1]交换一下 
	char s[2][10]={"Hello","world"};
	swap2(s);
	printf("s1=%s s2=%s\n",s[0],s[1]);
	
	
	return 0;
}	

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值