2011-04-26 50 views
0

什麼是檢索項和值從字符串的最優化的方式
我有char *stringRow="thisIsKey1=ThisIsValue1&thisIsKey2=ThisIsValue2"
我上面的字符串從我需要提取char *keychar *value
這將進入循環,直到我們從字符串中提取所有鍵值對。什麼是字符串中的檢索項和值的最優化的方式

鍵和值對由&字符劃分可以有Ñ字符串中鍵和值的數量。而且,鍵和值具有不同的長度。

如何使用簡單的C來做到這一點?任何例子都會有幫助。

***更新:
我認爲使用sscanf解析更好的方法。 可以有人告訴我如何解析這個字符串使用sscanf格式。

+4

這是一個網址請求參數?如果是的話,你應該考慮使用一些標準的解析器。 – 2011-04-26 10:37:00

+1

最適合什麼 - 執行速度,內存消耗,易於維護等? – ognian 2011-04-26 10:38:59

+0

我不認爲有什麼「最佳」的方式來做到這一點,除了掃描字符串尋找分隔符。也許_you_可以自己編碼? – 2011-04-26 10:43:31

回答

3

首先與Noufals評論。

否則,我假設一個帶有「= &」的strtok作爲分隔符集應該可以工作。然後遍歷數組並構建值對。

請注意,這不處理鍵或值中包含的分隔符。您需要轉義或轉碼這些。

+0

你可以建議我簡潔的HTTP URL解析器 – Puneet 2011-04-26 11:53:19

+0

我大膽地將它輸入到谷歌和發現http://curl.haxx.se/libcurl/c/ – 2011-04-26 11:57:32

0

您可以使用strtok輕鬆地分割字符串,並建立一個簡單的狀態類似的邏輯來獲取鍵值對(有兩種狀態:「讀書鍵」,「閱讀值」)

相關問題