1.對雙向鍊錶的具體操作如下:
list_add ———向鍊錶新增乙個條目
list_add_tail ———新增乙個條目到鍊錶尾部
__list_del_entry ———從鍊錶中刪除相應的條目
list_replace———用新條目替換舊條目
list_del_init———從鍊錶中刪除條目後重新初始化
list_move———從乙個鍊錶中刪除並加入為另乙個鍊錶的頭部
list_move_tail———從乙個列表中刪除並加入為另乙個鍊錶的尾部
list_is_last———測試是否為鍊錶的最後乙個條目
list_empty———測試鍊錶是否為空
list_empty_careful———測試鍊錶是否為空並沒有被修改
list_rotate_left———向左轉動鍊錶
list_is_singular———測試鍊錶是否只有乙個條目
list_cut_position———將鍊錶一分為二
list_splice———將兩個鍊錶進行合併
list_splice_tail———將兩個鍊錶進行合併為乙個鍊錶
list_splice_init———將兩個鍊錶進行合併為乙個鍊錶並初始化為空表
list_splice_tail_init———將兩個鍊錶進行合併為乙個鍊錶(從尾部合併)並初始化為空表
list_entry———獲取條目的結構,實現對container_of 的封裝
list_first_entry———獲取鍊錶的第乙個元素
list_first_entry_or_null———獲取鍊錶的第乙個元素
list_for_each———遍歷鍊錶
list_for_each_prev———反向遍歷鍊錶
list_for_each_safe———遍歷鍊錶並刪除鍊錶中相應的條目
list_for_each_prev_safe———反向遍歷鍊錶並刪除鍊錶中相應的條目
list_for_each_entry———遍歷指定型別的鍊錶
list_for_each_entry_reverse———反向遍歷指定型別的鍊錶
list_prepare_entry———準備乙個用於list_for_each_entry_continue 的條目
list_for_each_entry_continue———從指定點開始繼續遍歷指定型別的鍊錶
list_for_each_entry_continue_reverse———從指定點開始反向遍歷鍊錶
list_for_each_entry_from———從當前點遍歷指定型別的鍊錶
list_for_each_entry_safe———反向遍歷指定型別的鍊錶並刪除鍊錶中相應的條目
list_for_each_entry_safe_continue———繼續遍歷鍊錶並刪除鍊錶中相應的條目
list_for_each_entry_safe_from———從當前點遍歷鍊錶並刪除鍊錶中相應的條目
list_for_each_entry_safe_reverse———反向遍歷鍊錶並刪除鍊錶中相應的條目
list_safe_reset_next———獲得下乙個指定型別的條目
hlist_for_each_entry———遍歷指定型別的單指標表頭鍊錶
hlist_for_each_entry_continue———從當前點繼續遍歷單指標表頭鍊錶
hlist_for_each_entry_from———從當前點繼續遍歷單指標表頭鍊錶
hlist_for_each_entry_safe———遍歷指定型別的單指標表頭鍊錶並刪除鍊錶中相應的條目
2.字串相關
核心中經常會有字串轉換的需要, 其介面如下:
******_strtoull———變換乙個字串為無符號的long long 型
******_strtoul———變換乙個字串為無符號的long 型
******_strtol———變換乙個字串為有符號的long 型
******_strtoll———變換乙個字串為有符號的long long 型
vsnprintf———格式化乙個字串並放入緩衝區
vscnprintf———格式化乙個字串並放入緩衝區
snprintf———格式化乙個字串並放入緩衝區
scnprintf———格式化乙個字串並放入緩衝區
vsprintf———格式化乙個字串並放入緩衝區
sprintf———格式化乙個字串並放入緩衝區
vbin_printf———解析格式化字串並將二進位制值放入緩衝區
bstr_printf———對二進位制引數進行格式化字串操作並放入緩衝區
bprintf———解析格式化字串並將二進位制值放入緩衝區
vsscanf———從格式化字串中分離出的引數列表
sscanf———從格式化字串中分離出的引數列表
kstrtol———變換乙個字串為long 型
kstrtoul———變換乙個字串為無符號的long 型
kstrtoull———變換乙個字串為無符號的long long 型
kstrtoll———變換乙個字串為long long 型
kstrtouint———變換乙個字串為無符號的int 型
kstrtoint———變換乙個字串為int 型
示例:
char buf="115200";
unsigned int rate;
kstrtouint(buf,0,&rate);
//buf:輸入字串,0:自動識別,也可以是10(10進製)或16(16進製制),rate:存放轉換後的整形值.
//當沒有錯誤時返回值是0;
3.另外字串本身的操作介面如下:
strnicmp———長度有限的字串比較,這裡不分大小寫
strcpy———複製乙個以null 結尾的字串
strncpy———複製乙個以null 結尾的有限長度字串
strlcpy———複製乙個以null 結尾的有限長度字串到緩衝區中
strcat———在字串後附加以null 結尾的字串
strncat———在字串後附加以null 結尾的一定長度的字串
strlcat———在字串後附加以null 結尾的一定長度的字串
strcmp———比較兩個字串
strncmp———比較兩個限定長度的字串
strchr———在字串中查詢第乙個出現指定字元的位置
strrchr———在字串中查詢最後出現指定字元的位置
strnchr———在字串中查詢出現指定字串的位置
skip_spaces———從字串中移除前置空格
strim———從字串中移除前置及後置的空格
strlen———獲得字串的長度
strnlen———獲得乙個有限長度字串的長度
strspn———計算乙個僅包含可接受字母集合的字串的長度
strcspn———計算乙個不包含指定字母集合的字串的長度
strpbrk———找到字元集合在字串第一次出現的位置
strsep———分割字串
sysfs_streq———字串比較,用於sysfs
strtobool———使用者輸入轉換成布林值
memset———記憶體填充
memcpy———記憶體複製
memmove———記憶體複製
memcmp———記憶體比較
memscan———在記憶體中找指定的字元
strstr———在乙個以null 結尾的字串中找到第乙個子串
strnstr———在乙個限定長度字串中找到第乙個子串
memchr———找到記憶體中的字元
memchr_inv———找到記憶體中的不匹配字元
文章**
核心字串
實驗任務 給你乙個長度為 n,只包含小寫字母的字串 a0a1a2 an 1 它的核心字串定義 為最短的且包含全部 26 個小寫字母的子串。這樣的子串可能沒有,也可能只有乙個,還有 可能有多個,所以你只需要輸出它的長度,如果沒有這樣的輸出 1 即可。注意 乙個字元 串 a0a1a2 an 1 的子串是...
字串的轉換
數字 布林值等其他資料型別都可以轉換成字串 一般來說,指令碼引擎將根據上下文自動完成這樣的轉換。例如,當把數字或布林形變數傳給希望接收的字串變數的函式時,就會先隱式將該數值轉換成字串,再進行處理 var num 35.00 alert num 如果在賦值語句中要對兩個變數執行加法操作,其中乙個事字串...
字串的轉換
字串轉換 1.數字轉字串 有兩種方法,第一種用string.valueof,第二種先把基本型別裝箱,轉換為類型別 然後使用tostring方法 package test public class lianxi 這裡要注意int型別直接用tostring是不可以的 下面就是字串轉化為數字 可以呼叫in...