ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Функции работы сострокамиЯзык C определяет строки как особый вид массивов, позволяя осуществлять их ввод/вывод как единого целого. Встроенные средства обработки строк в языке C отсутствуют, но строки настолько широко используются в программировании, что большинство компиляторов имеет специальные функции для работы со строками. Эти функции входят в состав заголовочного файла <string.h>. Отметим ряд основных функций. Определение длины строки: strlen (S1) – длина строки S1, исключая нулевой символ. Копирование строк: strcpy (S1,S2), где S1 – указатель, S2 – указатель или константа. Строка S2 копируется посимвольно в строку S1. Необходимо иметь в виду, что размер строк компилятором не сравнивается, и это возлагается на программиста. Слияние строк (конкатенация): strcat (S1,S2). К концу строки S1 подсоединяется строка S2. Нулевой символ в конце строки S1 отбрасывается. Компилятор не следит, хватит ли в S1 места для S1 плюс S2. Сравнение строк: strcmp (S1,S2). Сравниваются коды символов, находящихся на одинаковых позициях в строках S1 и S2, начиная с нулевой. В зависимости от компилятора результат работы функции следующий: · возвращается нуль, если строки одинаковы, и значение отличное от нуля, если строки не совпадают; · отрицательное число, если строка S1 «меньше» строки S2 с точки зрения алфавита (ASCII-кодов), и положительное, если «больше». Данная функция используется для упорядочения по какому-либо критерию. 38 Функции ввода информации Функция, предназначенная для форматированного ввода исходной информации с клавиатуры: scanf (“ управляющая строка ”, список объектов ввода); в управляющей строке указываются только модификаторы форматов, количество, тип и порядок следования которых должны совпадать с количеством, типом и порядком следования вводимых объектов, иначе результат ввода непредсказуем. Список объектов ввода представляет собой адреса переменных, разделенные запятыми, т.е. для ввода значения переменной перед ее идентификатором указывается символ &, обозначающий «взять адрес». Если нужно ввести значение строковой переменной, то использовать символ & не нужно, т.к. строка - это массив символов, а ID массива эквивалентно адресу его первого элемента. Например: int course; float grant; char name [20]; printf (" Укажите курс, стипендию, имя \ n "); scanf ("% d % f % s ",& course, & grant, name); Вводить данные с клавиатуры можно как в одной строке через пробелы, так и в разных строках. Функция scanf использует практически тот же набор модификаторов форматов, что и printf, отличия - отсутствует формат % g, форматы % e,% f - эквивалентны. Внимание! Функцией scanf (формат % s) строка вводится только до первого пробела. Для ввода фраз, состоящих из слов, используется функция gets (ID строковой переменной); 39 Функции вывода данных Для вывода информации на экран монитора в языке Си чаще всего используются функции printf и puts. Формат функции форматного вывода на экран: printf (“ управляющая строка ”, список объектов вывода); - в управляющей строке, заключенной в кавычки, записывают поясняющий текст; список модификаторов форматов, указывающих компилятору способ вывода объектов (признаком модификатора формата является символ %) и специальные (управляющие) символы; - в списке объектов вывода указываются идентификаторы печатаемых объектов, разделенных запятыми: переменные, константы или выражения, вычисляемые перед выводом. Количество и порядок следования форматов должен совпадать с количеством и порядком следования печатаемых объектов. Функция printf выполняет вывод данных в соответствии с указанными форматами, поэтому формат может использоваться и для преобразования типов выводимых объектов. Если признака модификации (%) нет, то вся информация выводится как комментарии. Основные модификаторы формата: % d (% i) - десятичное целое число; % c - один символ; % s - строка символов; % f - число с плавающей точкой, десятичная запись; % е - число с плавающей точкой, экспоненциальная запись; % g - используется вместо f, e для исключения незначащих нулей; % o - восьмеричное число без знака; % x - шестнадцатеричное число без знака. Для типов long и double добавляется символ l, например, % ld – длинное целое, % lf – число вещественное с удвоенной точностью. Если нужно напечатать сам символ %, то его следует указать 2 раза. Управляют выводом специальные последовательности символов: \n - новая строка; \t - горизонтальная табуляция; \b - шаг назад; \r - возврат каретки; \v - вертикальная табуляция; \\ - обратная косая; \' - апостроф; \" -кавычки; \0 - нулевой символ (пусто). В модификаторах формата функции printf после символа % можно указывать строку цифр, задающую минимальную ширину поля вывода, например: %5 d (для целых), %4.2 f (для вещественных - две цифры после запятой для поля, шириной 4 символа). Если указанной ширины не хватает,происходит автоматическое расширение. Можно использовать функцию printf для нахождения кода ASCII некоторого символа: printf (" % c - % d \ n ",' a ',' a ');получим десятичный код ASCII символа а: a – 65 Функция puts выводит на экран дисплея строку символов, автоматически добавляя к ней символ перехода на начало новой строки (\n).Функция putchar выдает на экран дисплея один символ без добавления символа ‘\n’. 40 Управляющая строка функций ввода/вывода. fprintf(name,“<управляющая строка>”[, <список аргументов>]) fscanf (name,“<управляющая строка>”[, <список аргументов>]) Управляющая строка содержит обычные символы, которые выводятся на экран, спецификации преобразования и управляющие символы константы. Каждая спецификация начинается с символа % и заканчивается символом преобразования. Между ними могут записываться “ – ”,”. ”,” l ”, указываться размер поля или максимальное число символов или цифр для вывода. Символы преобразования: d- аргумент преобразуется в десятичное целое со знаком u- аргумент преобразуется в десятичное целое без знака o- аргумент преобразуется в восьмеричное целое без знака x- аргумент преобразуется в шестнадцатеричное целое без знака c- значением аргумента является одиночный символ s- значением аргумента является строка символов g- значением аргумента является вещественное: либо f, либо e e- значением аргумента является вещественное типа float или double в форме с плавающей точкой f- значением аргумента является вещественное типа float или double в форме с фиксированной точкой p- значением аргумента является указатель. Для произвольного перемещения по файлу и прямого доступа к его компонентам используется функция fseek(name, long offset, int point),которая устанавливает указатель текущей позиции в файле на offset байт относительно точки отсчета, определенной значением point (0- от начала файла, 1- от текущей позиции, 2- от конца файла). Функция возвращает значение 0, если операция выполнена правильно, и –1, если есть ошибка. Для закрытия файла используется функция fclose(name). Не нашли, что искали? Воспользуйтесь поиском:
|