簡體   English   中英

字符串下標超出范圍錯誤

[英]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只能從索引0slowo.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM