1. 程式人生 > 實用技巧 >用指向指標的指標的方法對5個字串排序並輸出

用指向指標的指標的方法對5個字串排序並輸出

用指向指標的指標的方法對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;
}