[Regex] 不包含定位詞的向前或向後選取
※ 綠色的是定位詞,藍色是選取的詞
以前我在parse html的element時都是用Substring()
配IndexOf()
但每做一次Substring()
就會想起以前老師講過string
是一個object
每修改它一次其實就是new
一個已修改過的object,這樣的做法在記憶體及效能上來說不太優
所以今天要來講如何用正則表達式(正規表示法),乾脆俐落地擷取到想要的字
※ 綠色的是定位詞,藍色是選取的詞
以前我在parse html的element時都是用Substring()
配IndexOf()
但每做一次Substring()
就會想起以前老師講過string
是一個object
每修改它一次其實就是new
一個已修改過的object,這樣的做法在記憶體及效能上來說不太優
所以今天要來講如何用正則表達式(正規表示法),乾脆俐落地擷取到想要的字
上篇為了挖礦而介紹了如何寫出一個阻擋使用者關機的程式
今天,打算把如何寫一個隱藏其它程序的程式也補上
我原本在挖礦的時候其實是用HiddeX去把挖礦程式的視窗隱藏啦
但想說既然上一篇的阻擋關機是用C#寫的,不然我也把HiddeX的功能加進去,就可以省一個exe比較方便
但這樣文章寫起來會很亂,所以在文章內我還是分開來寫:))
會研究這個主題是因為最近在用系上電腦教室挖礦XDD (噓~
但是大約下午沒課後一小時就會有專門的人來一台台關機 (凸 - -" 我才剛開好的說
幸運的是負責關機的人都是按一下電源鍵然後關螢幕就換下一台去了
所以我就想說如果可以攔截開機訊號,阻斷關機繼續進行,我的挖礦程式就不會被關閉了 (太邪惡了lol...
以下是效果圖,explorer.exe是我寫的阻止關機程式(故意取這樣的名字,才不會讓人起疑
它會卡著系統不讓系統關閉所有程式
在寫UVa或其他線上題目時,很容易遇到要從stdin剖析
10 20 3 5 6 -3 4 3 22 13 3 42 -1
這類的題目一次要處理以一行為單位,裡面有數字轉存int陣列又不同長度,每一行代表每一圈loop的執行,最後結尾來個-1代表測資輸入完畢的題目
如果直接用迴圈每個每個數字讀又有換行的問題要考慮
有做過這種題目的人應該對這種題目印象深刻吧
常常光在寫輸入的部分就花費了不少行數
以下是我在parse這類輸入的方法,分享給大家參考。
char inputLine[100]; int result[20]; int resultLength = 0; if(fgets(inputLine, sizeof(inputLine), stdin) != NULL) { char *lineTheRest = inputLine; int offset; while(sscanf(lineTheRest, " %d%n", &result[resultLength], &offset) == 1) { resultLength++; lineTheRest +=offset; } }
近期迴響