您好,登錄后才能下訂單哦!
簡(jiǎn)單應(yīng)用:對(duì)指針數(shù)組中的字符串進(jìn)行排序(升序);
1、交換指針變量的值;
(1)、代碼如下:
#include<stdio.h> #include<string.h> void sortByA(char **str, int count); void sortByA(char **str, int count){ int i; int j; char *tmp; for(i = 0; i < count; i++){ for(j = i+1; j < count; j++){ if((strcmp(*(str+i), *(str+j))) > 0){ //交換的是指針變量; tmp = *(str+i); *(str+i) = *(str+j); *(str+j) = tmp; } } } } int main(void){ char *array[] = {"aaaa", "bbbb", "ccccc", "dddd"}; int count = sizeof(array)/sizeof(array[0]); int i; sortByA(array, count); for(i = 0; i < count; i++){ printf("%s ", array[i]); } printf("\n"); }
(2)、運(yùn)行結(jié)果:
(3)、模型分析:
指針變量的交換:中間借助一個(gè)臨時(shí)的指針變量即可;
2、交換空間的值
(1)、代碼如下:
#include<stdio.h> #include<string.h> void sortByA(char (*p)[30], int count); void sortByA(char (*p)[30], int count){ int i; int j; char tmp[30]; for(i = 0; i < count; i++){ for(j = i+1; j < count; j++){ if((strcmp(p[i], p[j]) > 0)){ strcpy(tmp, p[i]); //內(nèi)存塊的拷貝 strcpy(p[i], p[j]); strcpy(p[j], tmp); } } } } int main(void){ char myArray[][30] = {"aaaaa", "bbbbb", "cccc", "dddddd"}; int i; int count; count = sizeof(myArray)/sizeof(myArray[0]); sortByA(myArray, count); for(i = 0; i < count; i++){ printf("%s ", myArray[i]); } printf("\n"); return 0; }
(2)、運(yùn)行結(jié)果:
(3)、模型分析:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。