Оператор цикла со счетчиком
В циклах со счетчиком выполнение тела цикла должно повторяться заранее определенное число раз. Хотя такой цикл можно организовать с помощью оператора цикла с постусловием или предусловием (они универсальны), в языке С++ имеется специальная конструкция для организации циклов со счетчиком. Синтаксис оператора цикла со счетчиком в общем случае следующий:
for ( <п.ц.> = <н.з.>; <условие>; <коррекция п.ц.> )
<оператор>;
Здесь for – ключевое слово (перев. с англ. для); <п.ц.> – переменная цикла, которая может быть только простого типа; <н.ц.> – начальное значение, выражение такого же простого типа, как и переменная цикла; <условие> – выражение типа сравнения, используемое для выхода из цикла; <коррекция п.ц.> – оператор присваивания, задающий изменение переменной цикла; <оператор> – любой оператор языка C++, в том числе и составной, являющийся телом цикла.
Оператор работает таким образом: сначала вычисляется выражение, соответствующее начальному значению, и присваивается переменной цикла, потом проверяется условие выхода из цикла и, если получается истинное значение, выполняется оператор, являющийся телом цикла. Затем изменяется переменная цикла и снова проверяется условие и т. д. Если значение выражения ложно, то осуществляется выход из цикла. Если начальное значение переменной цикла больше конечного значения, то операторы тела цикла не выполняются. Можно сказать, что оператор цикла со счетчиком – это оператор цикла с предусловием.
Строки символов.
Для работы со строками существует специальная библиотека, описание которой находится в файле “#include string.h” Рассмотрим наиболее часто используемые функции из этой библиотеки.
strlen (s) - определяет длину строки (без нуль-символа). s – указатель на строку символов.
strcat (s1, s2) – объединяет две с троки. s1, s2 – указатели на строку символов. Копия второй строки присоединяется к концу первой, и это объединение становится новой первой строкой. Строка s2 остается без изменения, а s1должна быть достаточно большой, чтобы разместить две строки.
strcmp (s1, s2) – сравнивает содержимое двух строк. s1, s2- указатели на строку символов. Эта функция возвращает 0, если строки одинаковые. Если строки разные, то функция возвращает разницу в кодах у первой пары несовпадающих символов.
strcpy (s1, s2) – копирование строки: строка, на которую указывает второй аргумент, копируется в строку, на которую указывает первый.
strchr (s, c) – ищет в строке s первое вхождение символа с и возвращает указатель на этот символ, если не обнаружит, то возвращает NULL.
strstr (s1, s2) – ищет в строке s1 первое вхождение подстроки s2 и возвращает указатель на найденную подстроку, если не обнаружит, то возвращает NULL.
| addcslashes | Экранирует спецсимволы в стиле языка C |
| addslashes | Экранирует спецсимволы в строке |
| bin2hex | Преобразует бинарные данные в шестнадцатиричное представление |
| chr | Возвращает символ по его коду |
| chunk_split | Разбивает строку на фрагменты |
| convert_cyr_string | Преобразует строку из одной кириллической кодировки в другую |
| count_chars | Возвращает информацию о символах, входящих в строку |
| crc32 | Вычисляет CRC32 для строки |
| crypt | Необратимое шифрование (хэширование) |
| echo | Выводит одну или более строк |
| explode | Разбивает строку на подстроки |
| fprintf | Записывает отформатированную строку в поток |
| get_html_translation_table | Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities() |
| hebrev | Преобразует текст на иврите из логической кодировки в визуальную. |
| hebrevc | Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки. |
| htmlentities | Преобразует символы в соответствующие HTML сущности. |
| htmlspecialchars | Преобразует специальные символы в HTML сущности |
| html_entity_decode | Преобразует HTML сущности в соответствующие символы |
| implode | Объединяет элементы массива в строку |
| localeconv | Возвращает информацию о числовых форматах |
| ltrim | Удаляет пробелы из начала строки |
| md5 | Возвращает MD5 хэш строки |
| md5_file | Возвращает MD5 хэш файла |
| metaphone | Возвращает ключ metaphone для строки |
| nl2br | Вставляет HTML код разрыва строки перед каждым переводом строки |
| number_format | Форматирует число с разделением групп |
| ord | Возвращает ASCII код символа |
| parse_str | Разбирает строку в переменные |
| Выводит строку | |
| printf | Выводит отформатированную строку |
| quoted_printable_decode | Раскодирует строку, закодированную методом quoted printable |
| quotemeta | Экранирует специальные символы |
| rtrim | Удаляет пробелы из конца строки |
| sha1 | Возвращает SHA1 хэш строки |
| sha1_file | Возвращает SHA1 хэш файла |
| similar_text | Вычисляет степень похожести двух строк |
| soundex | Возвращает ключ soundex для строки |
| sprintf | Возвращает отформатированную строку |
| sscanf | Разбирает строку в соответствии с заданным форматом |
| strcasecmp | Сравнение строк без учета регистра, безопасное для данных в двоичной форме |
| strcmp | Сравнение строк, безопасное для данных в двоичной форме |
| strcoll | Сравнение строк с учетом текущей локали |
| strcspn | Возвращает длину участка в начале строки, не соответствующего маске |
| stripcslashes | Удаляет экранирование символов, произведенное функцией addcslashes() |
| stripos | Возвращает позицию первого вхождения подстроки без учета регистра |
| stripslashes | Удаляет экранирование символов, произведенное функцией addslashes() |
| strip_tags | Удаляет HTML и PHP тэги из строки |
| stristr | Аналог функции strstr, но независит от регистра. |
| strnatcasecmp | Сравнение строк без учета регистра с использованием алгоритма "естественного упорядочения" |
| strnatcmp | Сравнение строк с использованием алгоритма "естественного упорядочения" |
| strncasecmp | Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме |
| strncmp | Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме |
| strpos | Находит первое вхождение подстроки в строку |
| strrchr | Находит последнее вхождение символа в строку |
| strrev | Переворачивает строку |
| strripos | Возвращает позицию последнего вхождения подстроки без учета регистра |
| strrpos | Находит последнее вхождение символа в строку |
| strspn | Возвращает длину участка в начале строки, соответствующего маске |
| strtok | Разбивает строку |
| strtolower | Преобразует строку в нижний регистр |
| strtoupper | Преобразует строку в верхний регистр |
| strtr | Преобразует заданные символы |
| str_ireplace | Регистро-независимый вариант функции str_replace(). |
| str_pad | Дополняет строку другой строкой до заданной длины |
| str_repeat | Возвращает повторяющуюся строку |
| str_replace | Заменяет строку поиска на строку замены |
| str_rot13 | Выполняет над строкой преобразование ROT13 |
| str_shuffle | Переставляет символы в строке |
| str_split | Преобразует строку в массив |
| str_word_count | Возвращает информацию о словах, входящих в строку |
| substr | Функция возвращает часть строки |
| substr_count | Подсчитывает число вхождений подстроки в строку |
| substr_replace | Заменяет часть строки |
| trim | Удаляет пробелы из начала и конца строки |
| ucfirst | Преобразует первый символ строки в верхний регистр |
| ucwords | Преобразует в верхний регистр первый символ каждого слова в строке |
| vprintf | Выводит отформатированную строку |
| vsprintf | Возвращает отформатированную строку |
| wordwrap | Выполняет перенос строки на данное количество символов с использованием символа разрыва строки. |
Структуры.
Структуры — это тип данных, состоящий из фиксированного числа компонентов, называемых полями. В отличие от массива компоненты (поля) структуры могут быть различного типа. Очень часто возникает необходимость описать характеристики некоторого объекта, представляемого и обрабатываемого в программе. Таким объектом могут быть данные о человеке, автомобиле, журнале и т. д.
Объявление структуры:
struct < имя типа >
{
< сп. полей >
};
Здесь struct — ключевое слово;
< имя типа > — правильный идентификатор;
< сп. полей > — список полей, представляющий собой последовательность разделов, между которыми ставится точка с запятой.
Например:
struct auto
{
char mark [10],
type [10];
int date;
float ob;
};