Мне нужно построить функцию, которая оценивает строку чисел в C ++. Строка чисел находится в сбалансированной троичной форме , означающей, что числа либо -1,0, либо 1, чтобы быть действительными. Таким образом, цель функции - проверить строку, чтобы убедиться, что она действительна. Например, если пользователь введет «-101-11», логическая функция вернет true. Или, если пользователь введет «-1012», логическая функция вернет false. Эта функция также является закрытой функцией-членом класса. Позвольте мне показать вам, что я до сих пор кодировал (я знаю, что это неправильно, но если бы кто-то мог мне помочь, это было бы здорово!) Это на C ++.
bool BTernary::isTernary(string s)
{
int i;
int l = s.length();
for (i = 0; i < l; i++) {
if (s.at(i) == '-') {
continue;
}
else if (s.at(i) == '0') {
continue;
}
else if (s.at(i) == '1') {
break;
}
return true;
}
return false;
}
Я также попробовал другой подход к проверке строки, он выглядит следующим образом: (Это тестовый файл, над которым я работал некоторое время, и он компилируется без ошибок. Проблемаесли он видит '-' или '1' или '0', он автоматически принимает это за истину, я думаю, вместо оценки всей строки для символов, которые мне нужны для оценки символ за символом?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i;
string s = "0";
for (i = 0; i < s.length(); i++) {
if (s.at(i) == '-' || '0' || '1') {
cout << "True" << endl;
return True;
}
else {
cout << "false" << endl;
return false;
}
}
}