我想找到最有效的方法來做這樣的事情:
一個包含各種資料的大字串,例如:
plushieid:5637372&plushieposition:12757&plushieowner:null&totalplushies:5637373
我想創建一個函式,它的輸入是,比方說"plushieposition",我會讓它找到并回傳字串plushieposition:12757。
我能想到的唯一方法是找到的位置,plushieposition然后掃描&并洗掉其余部分。但是,有沒有更清潔的方法?如果不是,那么在代碼中執行此操作的最佳方法是什么?
我在理解字串掃描實踐時遇到了一些麻煩。
uj5u.com熱心網友回復:
用于std::string::find()查找開始和停止位置,然后用于std::string::substr()提取它們之間的內容,例如:
string extract(const string &s, const string &name)
{
string to_find = name ":";
string::size_type start = s.find(to_find);
if (start == string::npos) return "";
string::size_type stop = s.find('&', start to_find.size());
return s.substr(start, stop - start);
}
string s = "plushieid:5637372&plushieposition:12757&plushieowner:null&totalplushies:5637373";
string found = extract(s, "plushieposition");
在線演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/477284.html
上一篇:將ASCII轉換為十六進制
