C獲取鍵值匹配資訊

2021-10-08 14:38:06 字數 2471 閱讀 6284

#define _crt_secure_no_warnings

#include

#include

#include

/* 鍵值對(「key = value」)字串,在開發中經常使用(鍵值對中間可能有n多空格,請去除空格)

鍵值對字串格式可能如下:

"key1 = value1"

"key2 = value2"

"key3 = value3"

"key4 = value4"

"key5 = "

"key6 ="

int getkeybyvalue(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen);

*/int

trimspace

(char

*inbuf,

char

*outbuf)

char

*p = inbuf;

int begin =0;

int end =

strlen

(p)-1;

int n =0;

if(end <0)

//從左往右移動,如果當前字元為空,而且沒有結束

while

(p[begin]

==' '

&& p[begin]!=0

)//從右往左移動,如果當前字元為空

while

(p[end]

==' '

&& end >0)

if(end ==0)

n = end - begin +1;

//非空元素個數

strncpy

(outbuf, p + begin, n)

; outbuf[n]=0

;return0;

}int

getkeybyvalue

(char

*keyvaluebuf,

char

*keybuf,

char

*valuebuf,

int* valuebuflen)

char

*p =

null

;int ret =0;

//查詢匹配鍵值

//"key4 = value4"找key4,找到返回首位址

p =strstr

(keyvaluebuf, keybuf);if

(p ==

null

)//如果找到,重新設定起點位置,跳過「key4」

//p = " = value4"

// "key4 = value4" -> " = value4"

p = p +

strlen

(keybuf)

;//查到=

p =strstr

(p,"=");

if(p ==

null

)//如果找到,重新設定起點位置,跳過「=」

//p = " value4"

// " = value4" -> " value4"

p = p +

strlen

("=");

// printf("strlen(=) = %d\n", strlen("="));

//取非空字元

ret =

trimspace

(p, valuebuf);if

(ret !=0)

//獲取長度,通過*間接賦值

*valuebuflen =

strlen

(valuebuf)

;return0;

}int

main

(void);

int len =0;

int ret =0;

#if 0

char

*p =

" abcddsgadsgefg "

;char buf[

100]=;

int ret1 =0;

ret1 =

trimspace

(p, buf);if

(ret1 !=0)

printf

("buf = %s\n"

, buf)

;#endif

ret =

getkeybyvalue

(keyval, key, value,

&len);if

(ret !=0)

printf

("val:%s\n"

, value)

;printf

("len:%d\n"

, len)

;return0;

}

C語言鍵值對查詢匹配

問題描述 鍵值對 key value 字串,在開發中經常使用 要求1 請自定義乙個介面,實現根據key獲取 要求2 編寫測試用例 要求3 鍵值對中間可能有n多空格,請去除空格 int getkeybyvalue char keyvaluebuf,char key,char value,char va...

Map獲取鍵值

map以按鍵 數值對的形式儲存資料,和陣列非常相似,在陣列中存在的索引,它們本身也是物件。map的介面 map 實現map map.entry map的內部類,描述map中的按鍵 數值對。sortedmap 擴充套件map,使按鍵保持公升序排列 關於怎麼使用,一般是選擇map的子類,而不直接用map...

C 獲取登錄檔指定鍵值

某些程式必須依賴指定執行環境。那麼讀取登錄檔來判斷此電腦是否有執行環境是個很不錯的辦法。因為每個軟體安裝之後都會在登錄檔中註冊對應的鍵值,並且有些鍵值是獨一無二的。那麼首先就需要找到那個具體的獨一無二的鍵值,以便程式在執行之前能夠去讀取以判斷。如下 class program 遍歷所有子項 節點 p...