驅動第一章字串

2022-01-28 19:17:10 字數 1808 閱讀 1036

使用字串結構

傳統c語言總定義和使用字串:

ansi和unicode

ansi

unicode

char *str=; //ansi字串定義

wchar_t *wstr=; //unicode字串定義

//求長度

size_t len = strlen(str); //ansi

size_t wlen = wcslen(wstr); //unicode

//print

printf("%s %ws %d %d",str,wstr,len,wlen);

1 字串定義

驅動中常用的字串結構

typedef struct _unicode_stringunicode_string,*punicode_string;

typedef struct _ansi_stringansi_string,*pansi_string;

對unicode_string的賦值:

unicode_string str=;

在標頭檔案ntdef.h中有乙個巨集rtl_constant_string,使用這個巨集後,我們就可以簡單的

定義乙個常數字串如下:

unicode_string str=rtl_constant_string(l"my first string");

unicode_string str;

rtlinitunicodestring(&str,l"my first string");

2 字串的拷貝

unicode_string dst;//目標字串

wchar dst_buf[256];

unicode_string src = rtl_constant_string(l"my source string!");

//分配緩衝區

rtlinitemptystring(dst,dst_buf,256*sizeof(wchar)); //

rtlcopyunicodestring(&dst,&src); //字串拷貝

3 字串的連線

ntstatus status;

unicode_string dst; //目標字串

wchar dst_buf[256];//定義緩衝區

unicode_string src = rtl_constant_string(l"my source string!");//定義

//初始化目標字串

rtlinitemptystring(dst,dst_buf,256*sizeof(wchar));

rtlcopyunicodestring(&dst,&src); //字串拷貝

4 字串的列印

1)字串和數字的集合

sprintf(),swprintf()不安全.微軟推薦rtlstringcbprintw

// 呼叫rtlstringcbprintfw來進行列印

status = rtlstringcbprintfw(

dst->buffer,l」file path = %wz file size = %d \r\n」,

&file_path,file_size);

// 這裡呼叫wcslen沒問題,這是因為rtlstringcbprintfw列印的

// 字串是以空結束的。

dst->length = wcslen(dst->buffer) * sizeof(wchar);

2)輸出列印

dbgprint() 列印除錯資訊

python基礎 第一章 字串(二)

print str 結果 runoob print str 0 1 結果 runoob print str 0 結果 r print str 2 5 結果 noo print str 2 結果 noob print str 2 結果 runoobrunoob print str test 結果 ru...

程式設計藝術之第一章 左轉字串

題目描述 字串的左轉操作 將字串前面的若干個字元移動到字串的尾部。例如 把字串abcdef 左旋轉2位得到字串cdefab。要求 要求對字串實現左旋轉操作,並且對長度為n的字串操作的時間複雜度為o n 空間複雜度為o 1 方法一 我們可以講字串的左轉想成如下過程 假設左轉1個字元 1 先把第乙個字元...

Scala程式設計實戰 第一章 字串 1

scala val s1 hello s1 string hello scala val s1 hello s1 string hello scala val s2 hello s2 string hello scala val s3 h ello s3 string hello scala s1 ...