#c
#c
Вопрос:
Вот код. Я получаю ошибку «строковый индекс вне диапазона» при отладке приведенного ниже кода. Поэтому, пожалуйста, найдите, где ошибка, и решение.
#include <iostream>
using namespace std;
int main()
{
string s;
int i = 0;
for (int i = 0; i < 50; i )
s[i] = 'A';
cout << s;
return 0;
}
Ответ №1:
Проблема в том, что s[i] = 'A';
меняется символ в позиции i, но строка пуста, и в этой позиции нет символа. Что вы хотите сделать, так это добавить новый символ к строке, подобной этому s = 'A';
или s.push_back('A');
.
Комментарии:
1. Или
string
заранее инициализируйте размер,string s(51, '');
илиstring s; s.resize(51);
, тогда исходный цикл будет работать.