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

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


免責聲明!

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



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