驅動中字串的操作

2022-08-12 00:21:14 字數 4209 閱讀 1475

/如果本文有不對的地方,望即時指點!

字串的初始化

定義乙個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

strcat

strncat

wcscat

wcsncat

copy

strcpy

strncpy

rtlcopystring

wcscpy

wcsncpy

trlcopyunicodestring

reverse

_strrev

_wcsrev

compare

strcmp

strncmp

_stricmp

_strnicmp

rtlcomparestring

rtlequalstring

wcscmp

wcsncmp

_wcsicmp

_wcsnicmp

rtlcompareunicodestring

rtlequalunicodestring

rtlprefixunicodestring

initialize

_strset

_strnset

rtlinitansistring

rtlinitstring

_wcsnset

rtlinitunicodestring

search

strchr

strrchr

strspn

strstr

wcschr

wcsrchr

wcsspn

wcsstr

upper/lowercase

_strlwr

_strupr

rtlupperstring,

_wcslwr

_wcsupr

rtlupcaseunicodestring

character

isdigit

islower

isprint

isspace

isupper

isxdigit

tolower

toupper

rtlupperchar

towolower

towupper

rtlupcaseunicodestring

format

sprintf

vsprintf

_snprintf

_vsnprintf

swprintf

_snwprintf

string conversion

atoi

atoll

_itoa

_itow

rtlintegertounicodestring

rtlunicodestringtointeger

type conversion

rtlansistringtounicodestring

rtlansistringtounicodestring

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 ...

動中字串的操作

核心 驅動 驅動中字串的操作 如果本文有不對的地方,望即時指點!字串的初始化 定義乙個unicode string型別的變數,這只是乙個空的結構體而已,我們並沒有給它分配任何的記憶體。如果直接對其進行字串拷貝等操作,肯定會引起異常的,當我們定義這樣型別的乙個變數,我們應該就把它看作乙個wchar型的...

LoadRunner中字串的操作

loadrunner中常用的字串操作函式有 strcpy destination string,source string atoi string to convert to int returns the integer value itoa integer to conver to string...