#define LINEMAX 20/*定義字符串的最大長度*/
int main()
{int i;
char**p,*pstr[5],str[5][LINEMAX];
for(i=0;i<5;i++)
pstr<i>=str<i>;/*將第i個字符串的首地址賦予指針數組pstr的第i個元素*/
printf("input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",pstr<i>);
p=pstr;
sort(p);
printf("strings sorted:\n");
for(i=0;i<5;i++)
printf("%s\n",pstr<i>);
}
sort(char**p)/*冒泡法對5個字符串排序函數*/
{int i,j;
char*temp;
for(i=0;i<5;i++)
{for(j=i+1;j<5;j++)
{if(strcmp(*(p+i),*(p+j))>0)/*比較後交換字符串地址*/
{temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
return 0;
}
擴展資料:
printf()函數的調用格式為:printf("<格式化字符串>",<參量表>)。
其中格式化字符串包括兩部分內容:壹部分是正常字符,這些字符將按原樣輸出;另壹部分是格式化規定字符,以"%"開始,後跟壹個或幾個規定字符,用來確定輸出內容格式。
參量表是需要輸出的壹系列參數,其個數必須與格式化字符串所說明的輸出參數個數壹樣多,各參數之間用","分開,且順序壹壹對應,否則將會出現意想不到的錯誤。
比如:
int a=1234;
printf("a=%d\n",a);
輸出結果為a=1234。
scanf()是C語言中的壹個輸入函數。與printf函數壹樣,都被聲明在頭文件stdio.h裏,因此在使用scanf函數時要加上#include<stdio.h>。
int scanf(const char*restrict format,...);
函數scanf()是從標準輸入流stdin(標準輸入設備,壹般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字符,並保存在對應地址的變量中。
如:
scanf("%d%d",&a,&b);
函數返回值為int型,如果a和b都被成功讀入,那麽scanf的返回值就是2。