簡體   English   中英

在C ++中解析C ++字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM