[英]string subscript out of range error
嘿,我對此代碼有疑問。 我已經閱讀了一些有關它的問題,但是我在代碼中找不到問題。 如果可以的話,請幫助我。
#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();
}
當我沒有數組時,我忘了帶字符串的那個小東西。
您正在閱讀的指數slowo.size()
在slowo
,但它的下標0為基礎的,所以slowo
只能從索引0
到slowo.size()-1
。 您需要將條件更改為
if (j >= slowo.size())j=0;
當字符串的長度為4時,表示索引0、1、2、3上存在字符,即size() - 1
。 從而:
if (j > slowo.size()) j=0;
應該:
if (j >= slowo.size()) j=0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.