Я получаю «Ошибка: строка не была объявлена ​​в этой области» - PullRequest
0 голосов
/ 16 июня 2019

Я объявляю строковый параметр внутри функции bool. И когда я запускаю код сборки сообщения показывают, что «строка не была объявлена ​​в области».

Я пробовал это на кодовом блоке ..

bool isOkay(char open,char close);
bool isCheck(string exp);

bool isCheck(string exp){
    stack<char>s;
    int i;

    for(i=0;i<exp.length();i++){
        if(exp[i] == '(' || exp[i] == '{' || exp[i] == '['){
            s.push(exp[i]);
        }
        else if(exp[i] == ')' || exp[i] == '}' || exp[i] == ']'){
            if(s.empty() || !isOkay(s.top(),exp[i])){
                return false;
            }
            else{
                s.pop();
            }
        }
    }
    return s.empty() ? true : false;
}

bool isOkay(char open , char close){
    if(open == '(' && close== ')') return true;
     else if(open == '{' && close== '}') return true;
      else if(open == '[' && close== ']') return true;

    return false;
}

Сообщение об ошибке «Строка не была объявлена ​​в области»

1 Ответ

0 голосов
/ 16 июня 2019

Вы не добавили с использованием пространства имен std; в вашей программе. Я успешно скомпилировал его в кодовых блоках после добавления с использованием пространства имен std; .

Вот полный код:

#include <iostream>
#include <string>
#include <stack>

using namespace std; // May be you didn't write this line.

bool isOkay(char open,char close);
bool isCheck(string exp);

int main() {
    // main func code goes here

    return 0;
}

bool isCheck(string exp){
    stack<char>s;
    int i;

    for(i=0;i<exp.length();i++){
        if(exp[i] == '(' || exp[i] == '{' || exp[i] == '['){
            s.push(exp[i]);
        }
        else if(exp[i] == ')' || exp[i] == '}' || exp[i] == ']'){
            if(s.empty() || !isOkay(s.top(),exp[i])){
                return false;
            }
            else{
                s.pop();
            }
        }
    }
    return s.empty() ? true : false;
}

bool isOkay(char open , char close){
    if(open == '(' && close == ')') return true;
     else if(open == '{' && close == '}') return true;
      else if(open == '[' && close == ']') return true;

    return false;
}
...