Возврат только заданных c символов в строке рекурсивно C ++ - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время я изучаю C ++, но у меня возникают проблемы с рекурсией. Проблема заключается в том, чтобы go через строку и возвращать только операторы внутри нее: т.е. '(' или '[' или '{' или ')' или '}' или ']'. К сожалению, моя программа продолжает возвращать пустую строку. Любая помощь будет оценена.

#include <string>

string operatorsOnly(string s) {
  if (s.length() == 0) {
    return "";
  }
  if (s[0] != '(' or '[' or '{' or ')' or '}' or ']') {
    return operatorsOnly(s.substr(1, s.length() - 1));
  }
  else {
    return s[0] + operatorsOnly(s.substr(1, s.length() - 1));
  } 
}

1 Ответ

1 голос
/ 28 апреля 2020

Невозможно сравнить переменную с несколькими значениями с этим синтаксисом. Вам нужно сделать:

if (s[0] != '(' or s[0] != '[' or s[0] != '{' or s[0] != ')' or s[0] != '}' or s[0] != ']') {
  // ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...