codeup|| 问题 D: C语言10.15
题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入 Copy
China
CLOCK
deal
样例输出 Copy
CLOCK
China
deal
代码
//只有获取地址的情况下才能进行交换,利用指针获取地址交换
#include<stdio.h>
#include<string.h>
void swap(char **p1,char **p2){ //定义char*类型,*p1指获取p1所指地址的内容,将p1,p2进行交换
char* temp=*p1;
*p1=*p2;
*p2=temp;
}
int main(){
char a[20],b[20],c[20];
scanf("%s%s%s",&a,&b,&c);
char *p1=a,*p2=b,*p3=c;
if(strcmp(p1,p2)>0) {
swap(&p1,&p2); //传入p1,p2的地址
}
if(strcmp(p2,p3)>0) {
swap(&p2,&p3);
}
if(strcmp(p1,p2)>0) {
swap(&p1,&p2);
}
printf("%s\n%s\n%s\n",p1,p2,p3);
}