GORM高階查詢
阿新 • • 發佈:2020-08-02
用指向指標的指標的方法對5個字串排序並輸出
解題思路:指向指標的指標其實就是二級指標,使用二級指標的儲存一級指標的地址,讓這個一級指標指向具體的資料空間; 定義一個字串指標陣列包含5個元素,每個元素可以儲存一個字串的首地址,而這個地址指向的是具體的字串資料空間,通過指標訪問實現對指向空間內的字串進行比較排序交換即可。
答案:
#include<stdio.h> #include<string.h> void sort(char *s[10]) { int i, j; for (i = 0; i < 10; i++){ for (j = i; j < 10; j++){ if (strcmp(s[i], s[j])> 0){//s[i]儲存的就是一個字串的首地址 char *tmp = s[i]; //指標的好處在於直接通過賦值可以改變指向 s[i] = s[j]; //只要交換了字串的地址就實現了字串的交換 s[j] = tmp;//因此通過指標指向的交換就能夠實現陣列中字串的排序 } } } } int main() { char *str[5];//定義字串指標陣列,可以分別儲存指向5個字串所在空間首地址 printf("Please enter five strings:\n"); for (int i = 0; i < 5; i++) { str[i] = malloc(32);//為每一個指標分配空間 scanf_s("%s", str[i], 32); } sort(str); printf("\n"); for (int i = 0; i < 5; i++){ printf("%s\n", str[i]); free(str[i]); } system("pause"); return 0; }