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

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

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

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

28.11.2011, 20:13. Просмотров 449. Ответов 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++ по книге &quot;ЯЗЫК ПРОГРАММИРОВАНИЯ C++. БАЗОВЫЙ КУРС&quot; (Издательство:Вильямс;...

Добрый вечер! Передача в функцию константного значения и обьявление им массива - C++
Вот у меня есть функция с объявленым массивом внутри: f(const int &amp;C) { int mass; } Где тут ошибка ? Ведь размер массива...

Добрый вечер, как сделать задержку экрана, после введенных цифр? - C++
#include &quot;StdAfx.h&quot; #include &lt;stdio.h&gt; void pr1() { int a,b,c,d; printf(&quot;\n&quot;); printf(&quot;vvevitu a,b,c \n:&quot;); ...

Добрый день!(а точнее вечер) Немогли бы объяснить почему зацикливается программа? - C++
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX. F= a*x*x +b*x +c(при a&lt;0 и с...

Помощи прошу - C++
Как сделать ? String name; getline(cin, name) не получается использовать массив

прошу помощи - C++
Помогите получить зачетку. Надо написать токую програму на С : User вводит цифру нп: 7965132 а на монитор выводитса : 6,2. тоесть...

Списки! Прошу помощи! - C++
Кто знает помогите пожалуйста! Напишите фрагмент программы добавления нового элемента в конец списка, если список формируется из...

Прошу небольшой помощи - C++
Добрый вечер господа. В Этой теме(Кликабельно), я определился с тем, что начну изучение C++ И у меня к Вас возникает вопрос....

Прошу коллективной помощи! - C++
Добрый день! Стоит задача создать программу на C, которая бы умела: - обращаться к нескольким внешним программам, а именно поочередно...

Прошу помощи ,не двигается змейка - C++
#include&lt;iostream&gt; #include&lt;windows.h&gt; #include&lt;conio.h&gt; using namespace std; const int Y = 20, X = 50; enum DIR{UP, DOWN, LEFT,...

задачка с матрицами. ПРошу помощи у форума! - C++
Значит вот условие: Сама задача: Даны прямоугольные матрицы А[/ размером m x n и B размером k x l. Найти произведение матрицы A на...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
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)
Ответ Создать тему
Опции темы

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