[核心/驅動] 驅動中字串的操作
//如果本文有不對的地方,望即時指點!
字串的初始化
定義乙個unicode_string型別的變數,這只是乙個空的結構體而已,我們並沒有給它分配任何的記憶體。如果直接對其進行字串拷貝等操作,肯定會引起異常的,當我們定義這樣型別的乙個變數,我們應該就把它看作乙個wchar型的指標,沒有「new」空間,所以我們必須去「new」空間給它。
typedef struct
unicode_string, *punicode_string;
有以下幾種方式:
1.rtlinitemptyunicodestring
unicode_string str;
wchar wcsbuffer[1024] = ;
rtlemptyunicodestring(&str, wcsbuffer, sizeof(wcsbuffer));
這種方式就像定義乙個靜態的串 wchar wcsbuffer[1024] = 。
2.動態申請空間
unicode_string str;
str.buffer = (pwchar)exallocatepoolwithtag(nonpagepool, 1024, 『1234』);
str.length = 0;
str.maximumlength = 1024;
這種方式就像定義乙個wchar* pwcsbuffer = new wchar[1024];
使用完之後,必須釋放記憶體。
exfreepool或者是exfreepoolwithtag。
3.定義常量unicode_string
可以使用巨集rtl_constant_string
unicode_string str = rtl_constant_string(l」my first string」);
記住這個字串不能再被修改,因為這就像定義了char *str = 「123」; 該字串不能再被修改。
字串的拷貝
rtlcopyunicodestring(&dst, &src);
字串的連線
驅動中使用的字串操作函式,這裡給出ansi和unicode的對比
操作
ansi串函式
unicode串函式
length
strlen
wcslen
concatenate
strcatstrncat
wcscatwcsncat
copy
strcpystrncpy
rtlcopystring
wcscpywcsncpy
trlcopyunicodestring
reverse
_strrev
_wcsrev
compare
strcmpstrncmp
_stricmp
_strnicmp
rtlcomparestring
rtlequalstring
wcscmpwcsncmp
_wcsicmp
_wcsnicmp
rtlcompareunicodestring
rtlequalunicodestring
rtlprefixunicodestring
initialize
_strset_strnset
rtlinitansistring
rtlinitstring
_wcsnsetrtlinitunicodestring
search
strchrstrrchr
strspn
strstr
wcschrwcsrchr
wcsspn
wcsstr
upper/lowercase
_strlwr_strupr
rtlupperstring,
_wcslwr_wcsupr
rtlupcaseunicodestring
character
isdigitislower
isprint
isspace
isupper
isxdigit
tolower
toupper
rtlupperchar
towolowertowupper
rtlupcaseunicodestring
format
sprintfvsprintf
_snprintf
_vsnprintf
swprintf_snwprintf
string conversion
atoiatoll
_itoa
_itowrtlintegertounicodestring
rtlunicodestringtointeger
type conversion
rtlansistringtounicodestringrtlansistringtounicodestring
rtlunicodestringtoansistring
memory release
rtlfreeansistring
rtlfreeunicodestring
lisp中的字串和字串操作
lisp使用雙引號表示字串字面量 cl user abc abc 如果要包含雙引號用 轉義 cl user a bc a bc 如果包含 本身,也需要 轉義 cl user a bc a bc 插入變數 第三方cl interpol包可以把乙個變數的值插入字串中 1.安裝 ql quickload ...
LoadRunner中字串的操作
loadrunner中常用的字串操作函式有 strcpy destination string,source string atoi string to convert to int returns the integer value itoa integer to conver to string...
python 中的字串操作
s.strip lstrip rstrip strcpy sstr1,sstr2 sstr1 strcpy sstr2 sstr1 sstr1 strcpy2 print sstr2 strcat sstr1,sstr2 sstr1 strcat sstr2 sstr1 sstr2 print ss...