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

обработка последовательности символов (C++ Builder 6) - C++

Восстановить пароль Регистрация
 
catsergo
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 14
15.01.2014, 22:24     обработка последовательности символов (C++ Builder 6) #1
Всем привет, помогите довести до ума программу. Вроде все есть, а считает не то что нужно.

Вобщем задание:
Определять в тексте количество знаков арифметических операций (+, -, * и /),
следующих за цифрой.

Код, который смог написать я:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
void main()
{
        char c;
        char ch;
        int k=0, f=0;
        printf("\n Vvedite posledovatelnots, okan4ivaushuusya tochkoi: \n");
while (c != '.')
        {
        scanf("%c%c",&c,&ch);
        if((c>='0') && (c<='9')) k++;
        if (((ch=='+') || (ch=='-') || (ch=='*') || (ch=='/')) && k!=0) f++,k--;
        }
        printf("\n Koli4estvo znakov = %d ", f);
 
getch();
}
Не могу в целом понять массивы :-(
Буду признателен за помощь, спасибо) Есть еще несколько работ, начну делать - отпишусь)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 22:24     обработка последовательности символов (C++ Builder 6)
Посмотрите здесь:

обработка последовательности C++
обработка последовательности символов C++
C++ определить, сколько символов ‘e’ предшествует первому вхождению символа ‘u’ ( либо сколько всего символов ‘e’ в этой последовательности)
Обработка последовательности символов C++
C++ Обработка последовательности символов
Обработка последовательности символов C++
Обработка последовательности символов C++
Обработка последовательности C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
15.01.2014, 23:32     обработка последовательности символов (C++ Builder 6) #2
catsergo, я бы вот как то так доработал.
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
void main()
{
    
    char* c=new char[_MAX_PATH];
    int f=0,l;
 
    printf("\n Vvedite posledovatelnots, okan4ivaushuusya tochkoi: \n");
    std::cin.getline(c,_MAX_PATH,'.');
    //запоминаем длину строки
    l=strlen(c);
    //запускаем цикл прохода от начала до конца строки
    for (int i=0;i<l;i++)
        //если i-й элемент - число
        if((*(c+i)>='0') && (*(c+i)<='9'))
            //и следующий - наш символ
            if (((*(c+i+1)=='+') || (*(c+i+1)=='-') || (*(c+i+1)=='*') || (*(c+i+1)=='/'))) 
                //увеличиваем счетчик
                f++;
 
    printf("\n Koli4estvo znakov = %d ", f);
 
    delete [] c;
    getch();
}
основная ошибка
C++
1
2
        char c;
        char ch;
вы обьявили 2 переменные типа чар! а вам нужен массив!!!

Добавлено через 3 минуты
я чуть чуть не досмотрел, вам массив впринципе и не нужен но тогда вам надо было 2 переменные инициализировать до начала цикла

Добавлено через 4 минуты
вот по вашему методу, исправил, но так не удобно=))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdio.h>
#include <conio.h>
void main()
{
        char c;
        char ch;
        int k=0, f=0;
        printf("\n Vvedite posledovatelnots, okan4ivaushuusya tochkoi: \n");
 
       do {
        //scanf("%c%c",&c,&ch);
        std::cin>>c>>ch;
        if((c>='0') && (c<='9')) 
            if (((ch=='+') || (ch=='-') || (ch=='*') || (ch=='/'))) 
                f++;
        }
       while (ch != '.');
        printf("\n Koli4estvo znakov = %d ", f);
 
getch();
}
Добавлено через 22 секунды
Вывод
Кликните здесь для просмотра всего текста

Vvedite posledovatelnots, okan4ivaushuusya tochkoi:
5 +
5 6
5 -
5 .

Koli4estvo znakov = 2
catsergo
0 / 0 / 0
Регистрация: 15.01.2014
Сообщений: 14
16.01.2014, 01:31  [ТС]     обработка последовательности символов (C++ Builder 6) #3
спасибо) тема закрыта)
Yandex
Объявления
16.01.2014, 01:31     обработка последовательности символов (C++ Builder 6)
Ответ Создать тему
Опции темы

Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru