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 << "в строке нет цифр";
}