|
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
|
||||||
Функция strtok, нужны комментарии к коду28.03.2011, 14:30. Показов 53745. Ответов 10
Метки нет (Все метки)
расскажите алгоритм
0
|
||||||
| 28.03.2011, 14:30 | |
|
Ответы с готовыми решениями:
10
Нужны комментарии к коду Нужны комментарии к коду Нужны комментарии к коду |
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
| 28.03.2011, 14:54 | ||||||
Сообщение было отмечено как решение
Решение
Функция strtok вычленяет токены, разделяемые любым из символов " ,.-", из исходной строки (при этом разрушая ее). Каждый вызов strtok возвращает указатель на строку-токен, заканчивающуюся символом '\0'. Если просмотрена вся исходная строка, то функция возвращает NULL.
Следовательно, алгоритм - пока pch не равно NULL, разбиваем строку на подстроки, разделенные символами " ,.-", и печатаем эти подстроки. strtok
6
|
||||||
|
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
|
|||||||
| 28.03.2011, 15:05 [ТС] | |||||||
1
|
|||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
| 28.03.2011, 15:20 | ||||||
Сообщение было отмечено как решение
Решение
Zheka91, токен в данном случае - это последовательность символов исходной строки, которая ограничена символами-разделителями.
Пусть, к примеру, у нас задана строка "this is a string,divided.into-tokens". В качестве символов-разделителей у нас задана строка " ,.-", т.е. любой и этих символов будет отделять один токен от другого. Очевидно, что токенами будут: "this", "is", "a", "string", "divided", "into", "tokens". Когда выполниться строка программы
Все таки я посоветую прочитать кусок man'a, который я привел в предыдущем сообщении, тогда многие вопросы отпадут сами собой.
10
|
||||||
|
154 / 146 / 20
Регистрация: 12.03.2011
Сообщений: 806
|
||
| 26.01.2012, 16:22 | ||
|
0
|
||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 26.01.2012, 16:23 | |
|
bober94, исходная строка задается при первом вызове strtok. Во всех последующих вызовах задается нулевой указатель (в сообщении Функция strtok, нужны комментарии к коду под катом приведено описание функции)
2
|
|
|
4 / 4 / 1
Регистрация: 07.01.2013
Сообщений: 103
|
|
| 23.06.2013, 15:18 | |
|
@Nameless One, а, допустим, что я хочу вывести этот так скажем "массив из слов", то что нам нужно сделать?
0
|
|
|
|
||
| 23.06.2013, 15:25 | ||
|
abc...123,,,\0 то после strtiok она станет такой abc\0..123\0,,\0
1
|
||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||||
| 23.06.2013, 15:57 | ||||||||
|
Для формировании массива есть два подхода. Первый подразумевает, что максимально возможное число элементов массива заранее известно, и количество элементов массива при любых входных данных не может превышать это число. Тогда нужно просто объявить статический массив достаточного размера. При втором подходе объявляется динамический массив, размер которого увеличивается при необходимости. Вот пример со вторым подходом: программа получает входную строку (и, возможно, строку разделителей), разбивает эту строку на слова (токены) по разделителям, помещая эти разделители в массив, и выводит этот массив:
2
|
||||||||
|
|
|
| 20.03.2020, 23:32 | |
|
Nameless One, VS2010 ругается на строку 48:
" error C2440: =: невозможно преобразовать "void *" в "char **" 1> Для преобразования "void*" к указателю на тип, не являющемуся "void", требуется явное приведение" Это возможно как-то поправить?
0
|
|
|
Вездепух
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,217
|
|||
| 21.03.2020, 00:14 | |||
|
Если вы передадите не null, то это означает: "начинаем работать с новой строкой" Добавлено через 1 минуту
0
|
|||
| 21.03.2020, 00:14 | |
|
Помогаю со студенческими работами здесь
11
Нужны комментарии к коду Нужны комментарии к коду
Нужны комментарии к коду Нужны комментарии к коду Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|