1. 程式人生 > >把字串中的數字轉為 int 儲存到 vector 中

把字串中的數字轉為 int 儲存到 vector 中

工作中自己寫的一個,儲存用。。。

    typedef std::vector<INT8> CardsVec;
    CardsVec CardsSToI(std::string strCards, char sign)
    {
        int i = 0;
        std::string tmpStr;
        CardsVec cardsVec;
        static char numChar[] = "0x123456789";
        for (; i < strCards.size(); )
        {
            int
i = 0; std::string tmpStr; CardsVec cardsVec; static char numChar[] = "0x123456789"; for (; i < strCards.size();) { // 查詢是否是有效的字串 從右向左,查詢字串中最右邊的匹配字元位置 // 在s中查詢sub子串出現的位置 char *strstr(const char *s, const char *sub); char *p = strchr(numChar, strCards[i]); if
(p) { tmpStr += strCards[i]; } if (strCards[i + 1] == sign || strCards[i + 1] == '\0') { if (tmpStr.size() == 0 && i >= strCards.size()) { if (i >= strCards.size()) { // 如果不這樣 會引起死迴圈
return cardsVec; } else { i++; continue; } } try { cardsVec.push_back(std::stoi(tmpStr, nullptr, 16)); } catch (std::exception) { return cardsVec; } tmpStr.clear(); i += 2; } else { i++; } } return cardsVec; } .... .... .... std::string strCards = "0x01 0x02 0x03 "; // 輸入的數字字元後面加上一個空格或者字元 呼叫: CardsVec needVec = CardsStoi(strCards, ' '); ... ... ...