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

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

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

Разделить символьный массив на лексемы - C++

26.05.2013, 23:18. Просмотров 505. Ответов 1
Метки нет (Все метки)

Нужно разделить символьный массив на лексемы.
Новая лексема - от и до мат. знака ("+", "-", "*", "/")
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 23:18     Разделить символьный массив на лексемы
Посмотрите здесь:

Дан символьный массив, разделить его на слова по символу пробела C++
C++ Литерный, символьный массив
C++ 32-разрядный символьный массив
Символьный массив, считываемый из файла C++
Разделить строку типа string на лексемы C++
C++ Разделить символьный массив на подмассивы без использования методов String
C++ Символьный массив и указатель на char
C++ после strtok записать лексемы в массив
Запись текста в символьный массив C++
C++ Заполнить символьный массив в классе
C++ Разделение строки на лексемы с strtok, проверка длины каждой лексемы (выдает ошибку)
C++ Разделить символьный массив (строку в стиле Си) на три отдельных массива согласно условию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
22298 / 10703 / 1741
Регистрация: 12.02.2012
Сообщений: 17,776
26.05.2013, 23:33     Разделить символьный массив на лексемы #2
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream.h>
#include <string.h>
 
void Parse(char *S)
{
    int l=strlen(S),i,j,p;
    char Tmp[100],sym;
 
    for (j=0; j<100; j++) Tmp[j]=0; p=0;
 
    for (i=0; i<l; i++)
    {
        sym=*(S+i);
        switch (sym)
        { 
        case '*':
            {
                cout << Tmp << endl;
                for (j=0; j<100; j++) Tmp[j]=0; p=0;
                cout << "*" << endl;
                break;
            }
        case '+':
            {
                cout << Tmp << endl;
                for (j=0; j<100; j++) Tmp[j]=0; p=0; 
                cout << "+" << endl;
                break;
            }
        case '-':
            {
                cout << Tmp << endl;
                for (j=0; j<100; j++) Tmp[j]=0; p=0;
                cout << "-" << endl;
                break;
            }
        case '//':
            {
                cout << Tmp << endl;
                for (j=0; j<100; j++) Tmp[j]=0; p=0;
                cout << "//" << endl;
                break;
            }
        case '(':
            {
                cout << Tmp << endl;
                for (j=0; j<100; j++) Tmp[j]=0; p=0;
                cout << "(" << endl;
                break;
            }
        case ')':
            {
                cout << Tmp << endl;
                for (j=0; j<100; j++) Tmp[j]=0; p=0;
                cout << ")" << endl;
                break;
            }
        default:
            {
                Tmp[p++]=sym;
            }
        }
    }
 
    if (strlen(Tmp) > 0) cout << Tmp << endl;
 
}
 
int main(int argc, char* argv[])
{
    Parse("(ax+dy)/(qwe-6.78*jjj)");
 
    return 0;
}
Миниатюры
Разделить символьный массив на лексемы  
Yandex
Объявления
26.05.2013, 23:33     Разделить символьный массив на лексемы
Ответ Создать тему
Опции темы

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