C++将字符串中的数字提取到数组中

对于一个数组,如果输入的形式是字符串,如“[1,2,3,4]”,我们没法直接使用里面的数字,为此,要将数字提取出来。
若key=false且当前字符是数字,则当前字符是该数的第一个字符,加入数组中,如果其前一个字符为负号,则该数为负数。若key=true且当前字符是数字,则当前字符不是数字的第一个字符,要与数组中的最后一个数字进行组合。

vector<int> strToArr(string str){ 
    int len = str.size();
    vector<int> res;
    bool key = false;
    for (int i = 0; i < len; i++){ 
    if (str[i] >= '0' && str[i] <= '9'){ //遇到数字
            if (key)//不是数字的第一个字符
                *(res.end()-1) = *(res.end()-1) * 10 + str[i] - '0';
            else{ 
                int tmp = str[i]-'0';
                if (str[i-1] == '-')//负数
                    tmp *= -1;
                res.push_back(tmp);//将数字的第一个字符添加到数组中
                key = true;
            }
        }
        else//遇到的不是数字
            key = false;
    }
    return res;
}
    原文作者:我只钓小鱼
    原文地址: https://blog.csdn.net/qq_42820853/article/details/107015763
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞