我对编程还很陌生,我正在尝试使函数将字符串转换为int。我使用此函数的想法是收集字符串中的每个数字并将其存储在另一个字符串中,然后将其转换为int。

该函数返回值0。

该函数应该做的是返回转换后的数字。不应为0。

int getNumberFromString(int convertedNumber, string textToConvert)
{
    for (int i = 0; i < textToConvert.size(); i++)
    {
        string collectNumbers;
        int j = 0;
        if (textToConvert[i] == '1' || textToConvert[i] == '2' || textToConvert[i]   == '3' ||
            textToConvert[i] == '4' || textToConvert[i] == '5' || textToConvert[i] == '6' ||
            textToConvert[i] == '7' || textToConvert[i] == '8' || textToConvert[i] == '9' || textToConvert[i] == '0')
        {
            collectNumbers[j] = textToConvert[i];
            j++;
        }
        if (collectNumbers.size() == 0)
        {
            return false;
        }
        else if (collectNumbers.size() > 0)
        {

            stringstream convert(collectNumbers);
            if (!(convert >> convertedNumber))
            {
                convertedNumber = 0;
            }
            return convertedNumber;
        }
    }
}

最佳答案

也许您应该只使用库函数?

int stoi (const string&  str, size_t* idx = 0, int base = 10);

09-04 04:04