嘿,我的代码有问题。我已经阅读了一些有关它的问题,但我在代码中找不到问题。如果你能帮助我,请帮助我。
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
cout << "You have 20 attempts";
string slowo="program";
char litera;
unsigned j=0;
for(int i=0;i<20;i++)
{
if (j > slowo.size())j=0;
litera = _getch();
for(unsigned z=0;z < slowo.size();z++)
{
if (litera==slowo[j])
{
cout << slowo[j];
break;
}
else cout << "-";
}
//cout << litera;
j++;
}getch();
}
当我没有阵列时,我忘记了字符串这个小东西。
答案 0 :(得分:4)
您正在阅读slowo.size()
中的索引slowo
,但是从0开始订阅,因此slowo
只能从0
索引到slowo.size()-1
。您需要将条件更改为
if (j >= slowo.size())j=0;
答案 1 :(得分:2)
当字符串长度为4时,表示索引0,1,2,3上有字符,即size() - 1
。因此:
if (j > slowo.size()) j=0;
应该是:
if (j >= slowo.size()) j=0;