C語言字元快速去重保留並排序

2021-10-05 06:18:31 字數 1074 閱讀 9636

下面通過案例解決。

[問題描述]編寫乙個程式, 從鍵盤接收乙個字串, 然後按照字元順序從小到大進行排序,並刪除重複的字元。

[輸入形式]從鍵盤輸入乙個字串,以回車結束輸入。要求程式可以處理含有空格的字串。

[輸出形式]程式接收此字串,然後將其按照字元asci碼值從小到大的順序進行排序,並刪除重複的字元輸出。如果字串為空,輸

出地應該為空。

[樣例輸入] badacgegfacb

[樣例輸出] abcdefg

[樣例說明]輸入badacgegfacb,然後排序刪除重複字元得到abcdefg。

#include

#include

intmain()

,str2[

256]=;

int i;

gets

(str1)

;for

(i=0

;str1[i]

;i++

)for

(i=0

;i!=

256;i++

)putchar

('\n');

return0;

}

str1是輸入的字串陣列;

str2是用來存str1的;用ascii處理

第乙個for是

例如:str2[str[i]]=1;給str2賦值;

就如下str1:1 2 2 3 3 4 5 \0

str2的大小:0 1 2 3 4·····255

str1:1 2 3 4 5 \0

str2:0 1 2 · · · · · 49 50 51 52 53 0(i)

0 0 0 ·········1 1 1 1 1 0

(無論有多少個重複的都是1,所以只保留乙個)

第二個for

輸出 i 的值,對應str2[i]的值==1;就輸出i。

以%c 輸出

我是小白,加油。

本文,僅供學習保留。

快速排序和歸併排序(C語言)

下屬專案 測試用例數量 快速排序無1 歸併排序無1 快速排序 我們以公升序為例 的關鍵在於 把第乙個值看做是樞紐值 pivot 利用兩個座標把這個樞紐值傳到序列的合適位置,使得左邊的值均比樞紐值小,右邊的值均比樞紐值大對樞紐值左邊的序列 不包括樞紐值 做第一步的處理,對樞紐值右邊的序列也做第一步的處...

c語言歸併排序和快速排序

老師要求做排序的課程設計,在網上找到的 看著不錯,收藏了 歸併排序和快速排序都是高效的排序演算法。快速排序 最壞情況下執行時間o n 2 平均執行時間o nlogn 不需要輔助空間。不穩定的排序。歸併排序 最好和最壞下,執行時間都為o nlogn 需要輔助空間,穩定的排序。實現 include in...

C語言 整數陣列去重並排序

一 c語言中自有的qsort 函式 功能 使用快速排序對要排序的物件進行排序 原型 void qsort void base,int nelem,int width,int fcmp const void const void 引數介紹 1 待排序陣列的首位址 2 待排序陣列中元素的個數 3 各個元...