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

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

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

Добрый вечер, прошу помощи по строкам и лексемам (strtok) - C++

28.11.2011, 20:13. Просмотров 442. Ответов 2
Метки нет (Все метки)

суть в чем... Строка будет скопирована из формул в экселе. По типу "=ЕСЛИ(A1>=12; 3;..." ит.п.
Пытаюсь игнорировать пробелы, деля строку на лексемы пробелами, а потом уже в каждой лексеме выделять последующие. Прошу не предлагать просто выделить все числа, там специфичные формулы, так что задачу надо решить именно в этом порядке. Не пойму почему первый цикл выполняется только один раз, видимо что-то с параметром NULL, но я до конца не понимаю что там...
C++
1
2
3
4
5
6
7
8
9
10
11
    char* token=strtok(s," ");
    char* token2=strtok(token,"()<>=");
    while (token)
    {   
            while (token2)
            {   
                strcpy(mas[k++],token2);
                token2 = strtok(NULL, "()<>=");
            }
        token = strtok(NULL, " ");
    }
Заранее спасибо. Не очень срочно, но чем быстрее тем лучше.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 20:13     Добрый вечер, прошу помощи по строкам и лексемам (strtok)
Посмотрите здесь:

прошу помощи C++
Прошу коллективной помощи! C++
C++ Добрый день!(а точнее вечер) Немогли бы объяснить почему зацикливается программа?
C++ Списки! Прошу помощи!
Прошу небольшой помощи C++
задачка с матрицами. ПРошу помощи у форума! C++
Прошу помощи ,не двигается змейка C++
C++ Помощи прошу
Добрый вечер, как сделать задержку экрана, после введенных цифр? C++
C++ Добрый вечер! если онлайн практика по С++
C++ Добрый вечер! Передача в функцию константного значения и обьявление им массива
Добрый вечер. Ребят, нужен ваш совет C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
28.11.2011, 20:19     Добрый вечер, прошу помощи по строкам и лексемам (strtok) #2
Nimensy,

Вы в первом предложении уже выделили токен, который ограничен проблелом. Поэтому в выделенном токене, который вы в цикле обрабатываете, уже пробелов быть не может!

C++
1
2
3
        char* token=strtok(s," ");
        char* token2=strtok(token,"()<>=");
        while (token)
То есть когда вы используете конструкцию

C++
1
token = strtok(NULL, " ");
внутри цикла, то эат функция хранит строку, которую вы перед этим ей передавали. А передавали вы строку
C++
1
token
в которой пробелов нет.
Nimensy
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 29
28.11.2011, 21:39  [ТС]     Добрый вечер, прошу помощи по строкам и лексемам (strtok) #3
ну по логике надо сменить в

C++
1
 token = strtok(NULL, " ");
NULL на s, дабы она обращалась опять к строке... Но она начинает опять тоже слово обрабатывать... Замкнутый круг, и что-то не пойму как выход найти. Может подскажите решение??

Добавлено через 1 час 6 минут
Up, все еще актуально!)) не могу ничего придумать (модеры\админы если ап нельзя делать, то больше не буду, не давно у вас тут просто)...
Yandex
Объявления
28.11.2011, 21:39     Добрый вечер, прошу помощи по строкам и лексемам (strtok)
Ответ Создать тему
Опции темы

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