string subscript out of range, выдает ошибку

делаю программу, которая считает все цифры в строке, которую вводит пользователь и записывает в отдельную переменную все цифры, а затем пользователь вводит цифру(номер цифры среди всех цифр) и программа выводит на экран цифру. с обычными короткими строками работает нормально, но как только в дело идут пробелы программа багует и выдает ошибки. введите сюда описание изображения

#include <iostream>

using namespace std;

int main()
{
    setlocale(0, "");
    string str,numbers = " ";
    int n;
    cout << "введите строку: ";
    cin >> str;
    for (int i = 0; i < str.length(); i++) 
        if (48<=str[i]<=57) numbers += str[i];
    cout << endl << "введите цифру: ";
    cin >> n;
    if (numbers.length() != 0)
        cout << endl << "под цифрой " << n << " цифра " << numbers[n];
    else cout << "в строке нет цифр";
}

Ответы (0 шт):