Новые книги

Представьте: вы садитесь в машину, берете в руки книгу и отправляетесь в путь. Вам не нужно управлять машиной – она управляет собой сама. Вам даже не нужно говорить ей, куда ехать, потому что она уже сверилась с вашим ежедневником, а он, в свою очередь, сам себя заполнил, проверив вашу почту и электронный план тренировок. Автомобиль везет вас не в магазин, потому что дроны уже доставили продукты в ваш холодильник, который еще на прошлой неделе сам отправил заявку в интернет-магазин), и не на работу (необходимость в офисе давно отпала), а, скажем, в оперу. Такой мир предлагает нам Интернет вещей.

Кажется, что это фантастика, однако все необходимые технологии уже существуют и выходят в серийное производство. Это значит, что идиллическая реальность Интернета вещей – вопрос самого ближайшего будущего. И у этого будущего есть обратная сторона: волна компьютерных преступлений, кибертерроризма и сетевого оружия, тотальная слежка и утрата контроля над собственной жизнью и окружающим миром.

Сэмюэл Грингард предлагает, не откладывая, отправиться в будущее и поразмыслить над важными вопросами, ответы на которые нам вскоре будут буквально жизненно необходимы.
В той отрасли, где мы работаем, библиотека DirectDraw появилась довольно давно. Во всяком случае, за это время она успела доказать свои возможности, и о ней было написано несколько книг. Как обычно, эти книги отличаются по своему качеству. Однако в основном это были добротные учебники, которые (как и многие книги о компьютерах) были написаны за три месяца авторами, изучавшими предмет по ходу дела. В результате большинство этих книг содержит лишь подготовительный материал. Теперь, когда библиотека DirectDraw подросла и обрела свою репутацию (во всяком случае, она старше других компонентов DirectX), настало время уйти от основ и познакомиться с ее некоторыми нетривиальными возможностями.

Эта книга начинается с того, на чем другие книги обычно заканчивались. Мы поговорим об основах DirectDraw, но лишь в общих чертах. Читатель — опытный программист, но незнакомый с DirectDraw — сможет с ходу войти в курс дела. Затем мы перейдем к другим темам, столь же интересным, сколь и полезным.

Цель этой книги — научить вас работать с DirectDraw, а не предоставить некоторую «структурную основу» или нестандартный API, который бы выполнял за вас всю работу. Демонстрационные программы написаны на C++ и используют MFC, но совсем не для того, чтобы скрыть все технические подробности. С++ и MFC — превосходные инструменты, потому что с их помощью любое приложение можно написать несколькими разными способами. Примеры для этой книги были написаны так, чтобы при этом получались структурированные и удобные для чтения проекты, которые наглядно показывают, что и почему происходит в программе.

Помимо DirectDraw, во многих примерах используется библиотека DirectInput. Строго говоря, при программировании графики для Windows можно обойтись и без DirectInput, но ей все же стоит воспользоваться. Она работает быстрее традиционных средств ввода Windows и к тому же входит в DirectX, так что для работы с ней не потребуется никаких дополнительных SDK.

strtok

Учебник РНР
НазадВперёд

strtok

(PHP 3, PHP 4 )

strtok - лексемизация/Tokenize строки.

Описание

string strtok (string arg1, string arg2)

strtok() разделяет строку (arg1) на небольшие строки (лексемы/tokens), где каждая строка отделена символом из arg2. То есть, если у вас имеется, например, строка "This is an example string", вы можете лексемизировать её на отдельные слова с применением пробела как разделителя.

Пример 1. strtok()
$string = "This is\tan example\nstring";
/* Использовать также символы tab и newline как лексемизирующие символы */
$tok = strtok($string," \n\t");
while ($tok) {
    echo "Word=$tok<br>";
    $tok = strtok(" \n\t");
}

Заметьте, что только первый вызов strtok использует аргумент string. Каждый последующий вызов strtok только использует лексему и отслеживает таким образом, где он находится в текущей строке. Для старта сначала или для лексемизации новой строки вы просто вызываете strtok снова с аргументом string для его инициализации. Заметьте, что вы можете поместить несколько лексем в параметр token. Строка будет лексемизироваться, если найден какой-нибудь один из символов из этого аргумента.

Поведение в случае обнаружения пустой части было изменено в PHP 4.1.0. Старое поведение - возвращалась пустая строка, новое, корректное - эта часть строки просто пропускается:

Пример 2. Старое поведение strtok()
$first_token  = strtok('/something', '/');
    $second_token = strtok('/');
    var_dump ($first_token, $second_token);

/* Выводится:
    string(0) ""
    string(9) "something"
*/
Пример 3. Новое поведение strtok()
$first_token  = strtok('/something', '/');
    $second_token = strtok('/');
    var_dump ($first_token, $second_token);

/* Выводится:
    string(9) "something"
    bool(false)
*/

Имейте также в виду, что ваши лексемы могут быть равны "0". Это даёт FALSE в условных выражениях.

См. также split() и explode().


Назад Оглавление Вперёд
strstr Вверхstrtolower