當前位置:成語大全網 - 書法字典 - 字符串字典順序排序

字符串字典順序排序

#包含?& ltiostream & gt

#包含?& ltstring.h & gt

使用?名稱空間?std

int?主()

{

夏爾。* t【5】;?//存儲在5個字符串中的地址指針

夏爾。* p;//記錄字符串地址的指針。

int?I、j、min

cout?& lt& lt?請輸入五個字符串?& lt& lt?endl

for(I = 0;?我& lt5;?i++)

{

t【I】?=?新的?char【20】;?//為字符串存儲申請空間。

cin嗎?& gt& gt?t【I】;?//輸入字符串

}

/*?心想:

?*?1.從當前字符串開始,與所有後續字符串進行比較,並查找最小的字符串(即按字母順序)

?*?應該是第壹個)字符串是第壹個字符串,則最小的字符串與

?*?當前字符串換位;

?*?2.從下壹個字符串繼續前面的操作,直到只剩下壹個字符串。

?*?(只剩下壹個字符串沒有什麽可比較的,所以下面的循環I是從0到0。

?*?4。)

?*/

for(I = 0;?我& lt4;?i++)

{

敏?=?我;?//假設第I個字符串是其余字符串中的第壹個字符串

?//位置最小。

為了什麽?(j = I+1;?j & lt5;?j++)//與當前字符串後第4個字符串的i+1進行比較。

如果?(strcmp(t【min,?t【j】)& gt;0)//如果t【j】小於目前找到的最小字符串,比如

敏?=?j;//Ming較小的字符串應該是t【j】,當前最小的字符串。

//位置應該更新為j,所以記錄j到min的位置,然後繼續。

//繼續看,?直到妳跳出循環

/*?跳出循環後,min是當前最小字符串的位置,那麽t【min】和t【I】交換位置?*/

/*?請註意,地址存儲在t【I】和t【min】中。只是交換地址嗎?*/

p=?t【I】;//將t【I】字符串的第壹個地址記錄到P指針。

t【I】?=?t【min】;//將t【min】字符串的第壹個地址賦給t【I】,t【I】中的原地址將被覆蓋。

t【min?=?p;?//將原始t【I】字符串的第壹個地址分配給t【min】

}

cout?& lt& lt?endl

for(I = 0;?我& lt5;?i++)//輸出字符串

cout?& lt& lt?t【I】?& lt& lt?endl

for(I = 0;?我& lt5;?i++)//可用空間

刪除?t【I】;

回歸?0;

}