C語言實現 查詢給定串中第乙個只出現一次的字元。

2021-09-16 21:19:01 字數 827 閱讀 5370

演算法思想:

1.在c語言中,char型別的本質是乙個1個位元組的整型 .我們不妨使用乙個陣列,用字元對應的ascall碼值作為陣列的下標。字元在給定串**現的次數,做為陣列對應下標的元素值。由於無符號char型別最大值為255,故乙個長為255的陣列足以記錄給定串中任意字元出現的次數(只考慮英文本元)。

2.遍歷該陣列,其中值為1的元素,其下標值就是給定串中只出現一次的字元的ascall碼值。也就是下標值對應的字元在給定串中只出現一次。

3.依次查詢這些字元在給定串中的位址,得出其中的最低位址,即為串中第乙個只出現一次的字元。

不囉嗦了!上**。

//在乙個串中,找到第乙個不重複的字元,並返回

#include#include#includechar getch( char *str)

; //定義乙個長度為255的陣列,以字元的ascall碼作為陣列下標,在對應下標處,記錄給定串中,每個字元出現的次數。

int i = 0;

char *p = null, *tmp = null;

//如果給定串中第i個字元不為0, 就把該字元轉化成對應的ascall碼,作為count陣列的對應下標,並另其元素值自增,,然後指標i在加1,繼續在給定串下乙個位置繼續判斷

for ( ; str[i] ; ++count[ str[i++] ] );

for (i = 0; i < 255; ++i)

else if(p == null)

} } printf("%c\n", *p);

return *p;

}int main(void)

go語言實現第乙個程式 hello,world!

0.前言 工作中一直使用c 編寫高併發伺服器程式,但c 編寫高並非伺服器程式時多執行緒邏輯,鎖機制導致的死鎖,記憶體洩漏,崩潰等問題會耗費大量時間和精力。聽同事說go語言是專門做高併發程式設計的,不用考慮上面的一些問題,由google推出。想想google出品,必屬精品,又和自己的工作方向相關,所以...

第乙個C語言

c語言是在b語言 bcpl 的基礎上建立起來的。b語言由unix的研製者丹尼斯 里奇和肯 湯普遜於1970年研製。unix開發者是肯 湯普遜 由於c語言執行於at t的多使用者 多工的unix作業系統上,unix被丹尼斯 里奇改為unix c 20世紀70年代初期,at tbell實驗室的程式設計師...

第乙個C語言程式

編寫第乙個c語言程式,在螢幕顯示hello world 也就是列印hello world 編寫工具為coderunner include 包含檔案標頭檔案 int main int argc,char argv include 求1到100的總和 int main int argc,char arg...