[英]Parsing a C++ string in C++
我有這樣的要求:我有一個類似“ -myArg:ArgVal”的字符串。
std::string strArg = "-myArg:ArgVal";
現在,我必須檢查上面的字符串中的第一個字符始終為'-',如果第一個字符為'-',則應將其刪除,並將“ myArg”和“ ArgVal”存儲在兩個不同的字符串對象中。
我如何有效地做到這一點?
嘗試這個
if (strArg[0] == '-') {
strVar1 = strArg.substr(1, strArg.find(':') - 1);
strVar2 = strArg.substr(strArg.find(':') + 1);
}
當然,我假設如果字符串以'-'
開頭,則前后會有一個帶有字符的':'
。 您可能應該檢查一下,因為如果沒有,可能會導致錯誤
看一下std::string::substr()
和std::string::find()
。
最可擴展和可靠的方法是通過正則表達式 。 推薦的庫是Boost.Regex
std :: string具有您需要的功能。 您可以使用string::at
檢查第一個字符string::at
並使用string::substr
創建子string::substr
。 擦除單個字符的工作方式相同。
有關更多信息,請參見c ++參考 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.