輸入3個字符串,按從小到大的順序輸出。要求使用指針的方法進行處理。


include <stdio.h>

include <stdlib.h>

include <string.h>

void swap(char** a,char** b)//輸入的參數是二級指針(指針的地址)
{
char* temp;//對指針(內容的地址)進行改變
temp= *a;//改變一件事,要傳入它的地址,改變地址,就要傳入地址的地址
*a= *b;//地址和指針temp等同
*b=temp;
}

int main()
{
char a[50],b[50],c[50];
scanf("%s%s%s",a,b,c);//為什么不用空格 ?
char p1=a,p2=b,p3=c;
if(strcmp(p1,p2)>0) swap(&p1,&p2);// 要交換地址p1,所以swap中的參數是p1的地址
if(strcmp(p1,p3)>0) swap(&p1,&p3);//為什么strcmp中不是
p1,p1可以表示字符串嗎??字符數組本來就是第一個字符的地址,p1=a
if(strcmp(p2,p3)>0) swap(&p2,&p3);
printf("%s\n%s\n%s\n",p1,p2,p3);//p1=a,字符數組也用第一個字符的地址表示,所以可以用指針
return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM