Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lies
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 15
#1

Проверка строки на корректность - C++

16.04.2016, 10:19. Просмотров 157. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
#include<cstring>
#include <conio.h>
using namespace std;
 
int main(){
    char a;
    char a1;    
    char a3[100];
    int b,b1,b2;
    scanf("%d%c%d%c%d",&b,&a,&b1,&a1,&b2);
    if(a!='+' && a!='-' && a!='/' && a!='*' || a1!='='){
        cout << "ERROR";
     }
    
    if(a=='+'){
        if(b==b2-b1 && b1==b2-b && b+b1==b2){
            cout << "YES";
        }
        else cout << "NO";
    }
    if(a=='-'){
        if(b==b2+b1 && b1==(b2-b)*(-1) && b-b1==b2){
            cout << "YES";
        }
        else cout << "NO";  
    }
    if(a=='*'){
        if(b==b2/b1 && b1==b2/b && b*b1==b2){
            cout << "YES";
        }
        else cout << "NO";
    }
    if(a=='/'){
        if(b==b2*b1 && b1==b/b2 && b2==b/b1){  
            cout << "YES";
        }
        else cout << "NO";
    }
    return 0;   
}
программа должна проверять строку на корректность и правильность. Например, запись вида «2+3=5» является правильной, а «23*7=421» неверная, но корректная. Корректной записью выражения будем называть последовательность: число, операция («+», «-», «*», «/»), число, знак равенства, число. Т.е. если в записи не хватает цифр или же встречается неизвестный символ. Например, записи «2*=3», «173» и «2+2=a» некорректны.
В выходной файл OUTPUT.TXT нужно вывести «YES», если указанная запись правильна (т.е. равенство представляет собой тождество), «NO» - если корректная, но неверная и «ERROR», если в записи присутствуют ошибки.


входные данные: 1)2+3=5 ----------------------- YES
2)3*7=20 ---------------------- NO
3)two plus three is five ------- ERROR
4)6-4=2abc -------------------- ERROR

помогите мне, пожалуйста со строкой, а именно на проверку ее. например 6-4=2abc это ERROR или если присутствует любая буква это некорректно и ERROR. код работает без нее и на тесте похожий на 4) валится.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2016, 10:19     Проверка строки на корректность
Посмотрите здесь:

Проверка на корректность операции - C++
Добрый день. Не знаю как лучше задать вопрос. Смысл идеи таков: Есть интерфейс типа данных (IVariable) и наследники от него,...

Считывание, проверка на корректность - C++
Как считать uint64_t с клавиатуры, вывести на экран и проверить, что это именно неотрицательное целое число, а не double или char...

Проверка указателя на корректность - C++
Есть у меня указатель class* test = new class(); И он в цикле вечно используется. Так вот как сделать проверку , что этот указатель на...

Проверка на корректность входных данных - C++
Нужно написать программу, которая бы проверяла строку на корректность. Допустимый формат вот такой +7 (233) 555-11-22. Как это сделать? В...

Проверка на корректность введенных данных - C++
дана задача ввести номер телефона пробел и дата в формате день. месяц. год. Выполнить простейшую проверку на корректность введенных данных....

Проверка на корректность ввода года - C++
помогите сделать так, что бы kolvostr нельзя было присвоить 0, а год должен быть не более 2009 #include &lt;fstream&gt; #include...

Проверка на корректность логического выражения - C++
Добрый вечер. На входе имеем логического выражение которое может содержать : 1. константы : 0 или 1 2. скобки : () 3....

Проверка на корректность ввода числа - C++
Здравствуйте. Помогите решить данную проблему. Есть длинное число, хочу проверить, чтобы вводились только числа. Функция ввода: ...

Проверка введенных данных cin на корректность - C++
Вот кусок кода : input1 : cout&lt;&lt;&quot;Введите количество животных которые когда либо жили у вас : &quot;; cin&gt;&gt;amountPats; if (!cin) { ...

Проверка введенного url адреса на корректность - C++
Здравствуйте, требуется ваша помощь не могли бы подсказать как организовать проверку введенного url адреса на корректность? есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5122 / 4442 / 1481
Регистрация: 14.04.2014
Сообщений: 17,630
16.04.2016, 17:22     Проверка строки на корректность #2
C++
1
2
3
4
5
6
7
8
if (scanf("%d%1[+-*/]%d=%d%1s", &b, &a, &b1, &b2, a3) != 4)
{
    cout << "ERROR";
}
else
{
    // расчёт
}
Yandex
Объявления
16.04.2016, 17:22     Проверка строки на корректность
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru