字串及處理之四 Windows自帶的字串函式

2021-04-06 16:45:15 字數 1698 閱讀 1024

windows字串函式

windows還提供了一組範圍很廣的字串操作函式。這些函式與c執行期字串函式(如strcpy和wcscpy)很相似。但是該作業系統函式是作業系統的乙個組成部分,作業系統的許多元件都使用這些函式,而不使用c執行期庫。建議最好使用作業系統函式,而不要使用c執行期字串函式。這將有助於稍稍提高你的應用程式的執行效能,因為作業系統字串函式常常被大型應用程式比如作業系統的外殼程序explorer.exe所使用。由於這些函式使用得很多,因此,在你的應用程式執行時,它們可能已經被裝入ram。

若要使用這些函式,系統必須執行windows 2000或windows 98。如果安裝了internet explorer 4.0或更新的版本,也可以在較早的windows版本中獲得這些函式。

在經典的作業系統函式樣式中,作業系統字串函式名既包含大寫字母,也包含小寫字母,它的形式類似這個樣子:strcat、strchr、strcmp和strcpy等。若要使用這些函式,必須加上shlwapi.h標頭檔案。另外,如前所述,這些字串函式既有ansi版本,也有unicode版本,例如strcata 和strcatw。由於這些函式屬於作業系統函式,因此,當建立應用程式時,如果定義了unicode(不帶前置下劃線),那麼它們的符號將擴充套件為寬字元版本。

windows也提供了一組用於對unicode字串進行操作的函式,表2 - 4對它們進行了描述。

表2-4 對unicode字串進行操作的函式

函式描述

lstrcat 將乙個字串置於另乙個字串的結尾處

lstrcmp 對兩個字串進行區分大小寫的比較

lstrcmpi 對兩個字串進行不區分大小寫的比較

lstrcpy 將乙個字串拷貝到記憶體中的另乙個位置

lstrlen 返回字串的長度(按字元數來計量)

這些函式是作為巨集來實現的,這些巨集既可以呼叫函式的unicode版本,也可以呼叫函式的ansi版本,這要根據編譯源**模組時是否已經定義了unicode而定。例如,如果沒有定義unicode,lstrcat函式將擴充套件為lstrcata。如果定義了unicode,lstrcat將擴充套件為lstrcatw。

在windows環境下操作dbcs:

如果只是呼叫strlen函式,那麼你無法真正了解字串中究竟有多少字元,它只能告訴你到達結尾的0之前有多少個位元組。ansi的c執行期庫中沒有配備相應的函式,使你能夠對雙位元組字符集進行操作。但是,microsoft visual c++的執行期庫卻包含許多函式,如_mbslen ,它可以用來操作多位元組(既包括單位元組也包括雙位元組)字串。

為了幫助你對dbcs字串進行操作,windows提供了下面的一組幫助函式(見表2 - 1 )。前兩個函式charnext 和charprev 允許前向或逆向遍歷dbcs字串,方法是每次乙個字元。第三個函式isdbcsleadbyte, 在位元組返回到乙個兩字位元組符的第乙個位元組時將返回true。

表2-1 對dbcs字串進行操作的幫助函式

ptstr charnext(pctstr pszcurrentchar);                   

返回字串中的下乙個字元的位址

ptstr charprev(pctstr pszstart,pctstr pszcurrentchar );  

返回字串中的上乙個字元的位址

bool isdbcsleadbytetrue(byte btestchar);                  

如果該位元組是dbcs字元的第乙個位元組,則返回

Windows 字串處理

舉例說明其基本功能 echo off set ifo abcdefghijklmnopqrstuvwxyz0123456789 echo 原字串 第二行為各字元的序號 echo ifo echo 123456789012345678901234567890123456 echo 擷取前5個字元 ec...

字串處理之 字串雜湊

字串雜湊,非常非常好用nb的方法,雖然有一定概率會翻車 翻車概率極低 但是這個是真的nb,你如果會這個在大多數場合可以避免掉有一些演算法的學習,比如馬拉車演算法,你學馬拉車只能處理回文字串,雖然馬拉車是o n 但在非極端測試點的情況下我們可以用字串雜湊來偷雞,字串雜湊簡單好用,比kmp簡單很多。km...

UFT之字串處理

1.instr函式使用 語法 instr 起始位置,目標字串 查詢的字串 功能 在目標字串中,從指定的起始位置開始查詢指定的字串 返回值 指定字串在目標字串中的位置 2.mid函式使用 strings 偶覺得 mid strings,2,4 從第二個字元到第四個字元擷取strings 3.len s...