Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 72

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 72 страницаИскусство программирования на Си (984073) страница 722015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 72)

1ЯРПТ Тург СЕХ'" ДАИК 1"'С'1ОЛ" АУ Ц Д Я У Ц () приведенного ниже примера видно „„ данные пред '5125«*20'> освободвть память, выделенаую под указатель <вв> * функлвей Овр5Сгхпд(). ставлены в закодированном виде. Знание формата данТег <ТЕХТАВЕА> «/ ных позволяет гораздо лег<с производить синтаксичес- <1ВРОТ Ттрби"яовюсг"> сЬаг «Опрбег(вд(солне сЬаг 'я) кий аназиз ожидаемых данных.

ста, в которое пользователь может ввести большой объем </роав> ( </Рдг> сваг «Опр = ЯОЬЬ< СОЫТЕЫТ ТТРВ=арр11сае1оп/х-ммы-гохм-пг1епсопеп данных. Этот тип отличается от типа ТЕХТ тем, что с </вову> хт(а != ВПЬЬ) 6АТЕТТАУ 1МТЕ((РАСЕ помошью атрибутов СОЧВ и КО%В можно установить </втыь> ( количество столбцов и строк, которые будут отобра- Ппр = юа11ос(яег1еп(я) + 1); Переменная САТЕ%АТ 1Р(ТЕХАСЕ указывает ве сию В приведенном примере задано простое поле ввода хт(впр .= ВОЬЬ) а р ю жаться на экране. текста, в которое пользователь может ввести имя функ- ( СО1, кот<>рую поллерживает <Х<сЬ-сервер. Формат этой ИП- 2(опа иитс" ииие те ~ати ест еро паси Написоиие Г61 прилоисеиии па Г 1 $ Часть ! и Глава 23 браузсра. переменная имеет слсдуюший формат: про- ипЕМОТЕ А00пп 5ЕВЧЕй МАМЕ какого-то отдельного браузера, а особенностью самого граммнос обеспечение/библиотека версии/версия.

Зна- НТТР-протокола. Более того, сушествуст ограничение Если требуется !Р-адрес браузера, который вызывает Переменная ЯЕКУЕК ХАМЕ может содержать либо чсния переменной для некоторых часто используемых Р У вЂ” Р Р У Р ° Р ' Р— и на количество символов в (/КЕ-адресе. Это ограничение браузсров приведены ниже. нашу программу. то его можно на!ии в перемен~ой действительное имя, либо доменное имя-пссвдонилн накладывается уже самим используемым браузером. Для Для (пгегпе( Ехр!огсг 3.02 значение переменной КЕМОТЕ АРОК.

либо 1Р-адрес сервера. Значение этой переменной ис- одних браузеров оно составляет 8192 бнйта, лля других— НТТР ()БЕК АОЕ1ЧТ равно: НЕМОТЕ Лццит192. 168.10.29 ользуе я лля указан я относительных СКС- сылок в„,о 255 байтов но в, ным является то, такое ог — — Например, слелУюшее значение ласт хост-имЯ сервера: „„ч ни с,ш — НЕМОТЕ НО5Т З.эг; цриаеа а; Лис Изадоиа 99! ВЕРВЕН Иаивте91.аод.сот К счастью, есть превосходная альтернатива. УстаноДля !Е4: Эта переменная содержит хост-имя компьютера, козо- 5ЕЙЧЕВ РОЕТ вив значение атрибута МЕТНО(У равным РОЯТ, мож- рый делает запрос Если правильное доменное имя нс- но указать %сЬ- серверу передавать данные СО1-прилонттв овен доент=моа111а/4 ° с (еотнасзьза' мате лоступно клиенту, функция йе(епх() возврашаст значс- Болыцинство НТТР-серверов используют порт 90, ио жснию через стандартный входной поток данных.

нис 1Ч(Л.(.. это ни в коей мере не является требованием. довольно КРоме того, ~сЬ-сервер передаст СО1-езриложснию в Для 1чемсаре 4.04: часто сервсрылибопосоображениям безопасности,либо переменной СО(ЧТЕ(ЧТ (Е(ЧСТН точное количество НЕМОТЕ НОВТиага4б.ии1 пах вследствие необхолнмости подлержки нескольких серве байтов, которос должно быть пРинЯто пРиложенисм. нттв цвви давит=моа111а/4.О4 С-НЕ (Игаээс 1! ВЕМОТЕ ПЧОЕИТ ров на одном компьютере используют и другис порты. Такой метод перслачи не накладывает огРаничсний на РАТН !ИЮ Переменная ЧЕКРЕК РОКТ сообшает СС1-приди- объел' передаваемых данных.

И еше одним пРсимУшс- Это поле пока ываст илснтификатор пользователя Оно жению номер п рта к т рый использ в з я я, ством этого метода является то, что мстодРОБТнс отоКлиент (как правило. браузср) имеет возможность че- доступно нс весела, а в зависимости от того, поилсржгь нов ния соединения с ним бражаст с ро у рюа в адресной строке браузсра как рсз переменную РАТН 1(ЧЕО передавать лополнитсль- наст ли компьютер клиента НУЕ(ЧТ КГС (Ксйцсвм (ог зто делает метод ОЕТ.

Тем ис менее, нс следует считать гетпгп Впутег и†/(оноыатши~не тематачегхиераздегн т Часть Н1 Глзвз 2Э 1 Листинг 23/Е Функция ((еас(С61()а(а, которая е1ве А5С(1. Например, %21, т.с. Ох21 в шестнадцатиричном /* Самвел долвен бить в строке Нех, осуществляет считывание входных данных С61- ( виде, соответствует десятичном> значению 33, что со- если его там вет, значит, в данаях есть гт(НОЬЬ == 1детв(нп((ег, Бгзе оввбка. программы с входного потока.

— — втбгп » отвстствуст символу "!". сбаг *НеабСО1паса( 1пт *Еггог) ( 11 «ЯатсЬ = втгснг(Н , *в » .= ЯПЬЬ) ( *Еггог = СО1 яп Оьтл; ПРИМЕЧАНИЕ сьаг *Вп((ег 1гее(Вп((ег » Если вы разработчик универсальных программ, то, назер- /* теперь мокно вмчнслвть старлей сЬаг *Недпевтнетьоб = япЬЬ; Вп((ег = НОЬЬ; ное, уже начинааге проявлять нетерпение. А как насчет полубайт эквивалента свмвопа в кодировке сЬаг *Соптептоепдтн = КОЬЬ; ) расширенного двоична-десятичного кода и других упоря- АБС11. сЬаг Сптпата = ЯОЬЬ; доченньж кодовьж таблиц? А что произошло с переноси- */ ) мым программированием) Просто НТТР использует А5СН, вась( = (ппвгдпеб (пт)(натан - Нек» вгзе Г Бззе = О и другого варианта просто нег.

А5СБ фактически явля- ется алфавитом Хг/еб-сети. /* А теперь то ке самое дпя младвего еЕггог = СО1 БОССЕББ; ( полубайта. е = со1 пееяоик нетноо; Приведенное описание может показаться немного */ Недпеаькесвоб = детепч("Ннппннт ИнтНОП ); сложным. Тут уместно вспомнить пословицу, которая В++1 г((ЯПЬЬ == Недоевснетьоб) зе «кассь = вьгсьг(нех, 'в» 1= ( гласит, по л)чшс один раз увидеть, чем сто раз услы- ЯОЬЬ) ° Еггог = Спт ЯПЬЬ НЕП НетнОо; шать. Поэтому давайте лучше посмотрилг на исхолный ) код привслснный в листингс 23 2 /" Убрать старввй полубайт. */ Авсгг «= Сн г((0 == 'Еггог) Листинг 23.2.

С61НехуоАБсй — преобразование Авсгг )а (ппвгдпеб (пт) Ненасение СО/ Дилачнитюиные тематические раз)ееы 3 Часть )и Как и предыдущий, этот код можно найти на >Чеб- Ничего сложного, это довольно простой односвязсайтс издательства "ДиаСофт" в файле сйьс, и вам не ный список. Мы продвигаемся по строке запроса, развв11е(в == Еггог ьь Р>е>О )= НО ) вв11е О == Еггог ЬЬ Р>е1О != НОЬЬ! придется писать его само>!у. бивая ес символами амперсанда, декодируем ее, разде- * преобразовать закодвроваввме свмволм Если вы д>маете, что этой функции передается вся ляя переменныс и значения (при этом в качестве зу(СО1вехтовзс(1(Р1е1О) != В) строка запроса, то вы ошибаетесь. Вспомните, что дан- разделителя переменной и значения используется сим- ( ные представлены в виде пар переменная=э!соление, раз- вол "=") К сожалению, мы нс знаем, какой обьем па- еггог = 1; деленных символом амперсанда.

Если амперсанд явля- мяти выделить под значение и под перемени>ю. Пср- е1зе ется частью данных пользователя (и преобразуется вый способ, позволяющий определить это, — двигаться < браузсром в шестнадцатиричный вид), то преобразова- по строке до первого символа "=", затем вернуться на /* устававлвааем звачевая по умолчаввв. Нм ве макея вспользовать вевзек, поскольку в ние всей строки в формат АБСП было бы неправильным начало строки и произвести само копирование данных.

ставдарте ВН51 ае оговорено, что а двовчвом ваде НОЬЬ во всех разрядах содерквт ауле. решением. Имеет смысл сначала перед каждой парой Олнако это нс очень эффективно. и/ лереченная=значение поставить маркеры, а затем декоди- Оказывастся, это делать не обязательно. Достаточ- Спгг1кев >вехе — НОЬЬ! ровать кюкдую пару. но просто поместить переменную ЪвпаЫе и значение в Кроме того, необходимо подумать о хранении перс- одно место памяти (на место переменной). Далее пере- /* Для сохраввоств скопировать даввве поля '! менных и их значений.

Первое, что прихолит в голову, — мсщасм указатель по символам значения Ъса)пе до тел Спгг1Сев->Чаг1авге = Опрзгг1пя(Р)е1с))! это список. Поэтому нашей первой задачей будет фор- пор,пока нс встретится символ "=", устанавливаем зна- ку(НОЬЬ == Согг1сев->Чагзавье) мированис структуры данных, которую можно органи- ченис, на которос >казываст указатель, равным н>лю ( Еггог = 2! зовать в виде связанного списка. Вот часп файла сеьй: (>О) и переводим указатель на слсл>ющ>ю позицию. Пока мы помним, что Ча)пе указывает на мсстоположс- е1ае Суреаеу асгосе Спх Ьгат ) /» О случае оаибки удалить весь список */ д1(яггог 1= О) ( Да»танте»»н те те ната»пенне ра>)ели Написан»» СС1-при именин на С В 1 Часть 1и Глава 23 Листинг 23.4.

Функция Арр — ориентированный на приложение код для отображения прототипов функций стандартной библиотеки АЬ)5) С. чада Лрр(СС1 Ьтзт »Ьдэг) ССЬОиас уьдис(ССтьдиг]1 ( сЬаг »Ргокп = ИОЬЬ; СС1ьтиг = ИОЬЬ1 дпс СеьадпЧЧегидоп1пто = 01 сйаг »Чпгпдоп1пто "С ОЬ1еапьеб СС1 Опао ч1.05"1 геспгп СС1птит) сЬаг »Ясгдрсиаме = Оекепч("ЯСИ1РТ Ийия'); ) /» им окидаим, что а списке будет только одна эпемаат, поэтому давайте его используем. */ Код, приисдснный а лнстннтс 23.3, строит связан- приложснис будет нс только выводить на экран про~оный список, и котором каждый узел прсдстапляст олну тип указанной функции или номср версии, но и новую дт(эггсмр(ьдак->Ча1пе, *чегпдоп ] == О] псрсмснную и соотистстяуюшсс сй значение Признаком форму, с помошью которой пользователь сможет про( конца списка яплястся значение М)Е).. В таком списке должять поиск по библиотеке функций С.

Спьсдп Чигь(оп1п(о = 1; 0 могут содержатся псрсмснныс с одинаковыми именами, Чтобы слслать процссс программирования для нашеслсдопатсльно, у нас нс будет проблем, если лля радио- то читателя как можно более приятным, мы позаботи- ргдпкт("<ЯТИЬ>1п ); кнопок или яыпадаюших списков будет установлено лись, чтобы исс функции а приложении, за исключсни- ргдпду( <ВДЬО>тп ) М()ЕТ)РЕЕ см только одной функции, специфичной для данного ргдпгт( <т)ТЬВ>тп )1 'ч ."т-" " " -" "' > ." > ." .

.р -еь; > ,..., .;, ; , .„...,,...,....,..., „., „ ..„,,„ ...,, , „,. „ „ . .. , - , дт(СеьсдпЧЧпга(оп1пто ) тиннтинмаание теми ни«ее< и разде ~и Часть )В Нине<ание СС!-ирииииеений ни С 1 Глава 73 рггпст(" <Свлтвв>(п ); рггпьт( ОпХпомп СО1 Еггог )п рг пя((' <РОВт 5)ХЕ=(>)п"); ЬгеаХ; ргтпят(" Нехя яеагсва Хп'); ) рг)пхт(* <ВН>)п<ВВ>)п ); рггпст( Р1еаяе Гуре гп СЬе паве /* Нв ае молем предоплата, поэтому аллодам. «/ "от ГЬе Хппсяаоп(п')) геяпгп ЕХ1Т РА1ЬОНЕ; Рг1пст!' чЬове ргототуре уоп* ) югяЬ Со яее.1п'); РГ(ПГХ(" </РОВТ>ХП")1 Ьгэя СО1сгеаяеЬ>вт(ооруОХЯпегуясггпр), рг1пст(' <ВН><ВН>1п"); /' Сработало это алв ает, у аас болаве ает аеобходимоста в СоруОХопегувсгьпд, поэтому ргтпсх( <1лрот тхРе=)"ьехг1* ВАне= освоболдаем ее.

Характеристики

Тип файла
DJVU-файл
Размер
12,26 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6361
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее