自創的C語言列舉字串演算法

2021-06-14 16:28:23 字數 455 閱讀 7044

本人大一狗,才學完c語言。

本來是製作乙個用字典法暴力破解hash值的程式,但是途中出現了問題,就是字典檔案。8位純字母的字典居然要1000多gb,無奈之下只能使用列舉法來迴圈字串了。

當時是比賽的一道題目,由於需要每種可能的情況,所以要迴圈出n位所有可能性的純字母字串,就是從aaaaa~zzzzz所有的可能性。

我使用的是陣列,每位用ascii的值來迴圈達到目的,迴圈出數字後用型別轉換轉換成字元型,最終得出需要的字母。

#includeint main()}}

} }return 0;

}

這是乙個5位字串的迴圈,老師說迴圈層數太多效率低,所以我標題說了效率低。。

for裡面的97 和 122代表了ascii碼表裡的a和z,這表示每位字元從a迴圈到z,如果還有大寫、數字、字元的話可以更改這裡的數字為相應的ascii值。

自創字串查詢方法

kmp bm sunday 方法說白了都要字串比較,這一步都很費時間,有沒有略去或者至少件事這減少這一步驟度呢。考慮目標字串 str1 abcd 我們把他加起來 sum1 a b c d str2 a1b2c3abc2abcd 我們也4個字元加起來,如果不相等後移一位再求和比較,如果相等,再用字串比...

C語言 演算法 字串

字串操作 include include include include 字串移位包含問題,比如aabcd前兩位aa移到尾部後bcdaa包含cdaa字串 bool contain check s void exe get most 給乙個字串,有大小寫字母,要求寫乙個函式把小寫字母放在前面,大寫字母...

C 列舉轉字串

有時候需要把列舉轉字串,那麼如何把列舉轉字串?假如需要把列舉轉字串,可以直接把他進行轉換,請看 public enum di static void main string args 這樣就可以把列舉轉字串 除了這個方法,可以使用 c 6.0 的關鍵字,請看 console.writeline na...