Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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).






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных