1. ホーム
  2. c++

[解決済み] 文字列の添え字が範囲外であるエラー

2022-02-02 19:33:08

質問

このコードに問題があります。私はそれについてのいくつかの質問を読んだが、私は私のコードで問題を見つけることができません。あなたができる場合は、私を助けるみんな。

#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;