我真的不理解哪错了哪位帮帮我呗

#include<bits/stdc++.h>
using namespace std;
int start,step;
int main()
{
string str;
cin>>str>>start>>step;
for(int i = start ;i <= str.length(); i+step )
cout<<str[i];
return 0;
}
字符串跳步,为什么输入
abcdefg
2 2
结果是个死循环。这啥情况啊这么简单的我哪里出问题了我心态崩了
答案
ceg

#include<bits/stdc++.h>
using namespace std;
int start,step;
int main()
{
    string str;
    cin>>str>>start>>step;
    for(int i = start ;i < str.length(); i+=step )   //i+stop不会改变i的值,所以死循环;其次i不能等于str.length()
    cout<<str[i];
    return 0;
}