Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Обработка строк
Опишем только основные функции для работы со строками. Полный их перечень можно найти в справочниках по языку, например, в [1, 5]. ¨ Ввод-вывод. Заголовочный файл < stdio.h> Форматный. В качестве форматной строки указываетсяшаблон %s. а) Ввод-вывод для произвольного потока (файла) int fscanf (FILE* < указатель потока>, char* < форматная строка>, < список ввода>)
Результат – число правильно выполненных присваиваний или EOF в случае окончания файла. int fprintf (FILE* < указатель потока>, char* < форматная строка>, < список вывода>)
Результат – число выведенных знаков. б) Ввод-вывод для стандартных потоков stdin, stdout int scanf (char* < форматная строка>, < список ввода>) int printf (char* < форматная строка>, < список ввода>) Результаты те же. Внимание! Функции fscanf, scanf вводят символы до первого пробела или символа ‘\0’, поэтому строки с пробелами надо вводить функциями fgets, gets (см. ниже).
Без указания формата. Используются специальные функции ввода-вывода строк. а) Ввод-вывод для произвольного потока (файла) char* fgets (char*< указатель строки>, int < число симв.>, FILE* < указатель потока>) Действие: из входного потока считываются символы до первого символа ‘ \n ’ (конец строки) или до конца потока или до прочтения (n -1) символа. Результат помещается в строку; в конец добавляется нулевой символ (‘ \0 ’). Если n =1, то формируется пустая строка. Возвращаемое значение: адрес строки или NULL в случае ошибки или достижения конца файла (различить эти ситуации можно с помощью функций feof и ferror).
int fputs (char*< указатель строки>, FILE* < указатель потока>) Действие, результат: копирует строку в поток с текущей позиции. Символ ‘\0’ не копируется. Возвращаемое значение зависит от версии системы (0 в случае удачи, не равное нулю значение при неудаче; либо код последнего записанного символа или EOF при неудаче).
б) Ввод-вывод для стандартных потоков stdin, stdout char* gets(char*< указатель строки>) Действие: чтение строки из stdin. Результат: в строку включаются все символы до первого встретившегося символа ‘\n’, не включая его. Строка-результат заканчивается символом ‘\0’. Возвращаемое значение: то же, что для fgets. int puts(char*< указатель строки>) Действие, результат: запись строки в поток stdout с текущей позиции. Выводятся символы, пока не встретился ‘\0’. В завершение добавляется ‘\n’. Возвращаемое значение: код последнего записанного символа (символа ‘\n’) или EOF при неудаче. ¨ Отдельные символы строки можно обрабатывать как элементы массива. ¨ Некоторые функции работы со строками. Заголовочный файл < string.h>
|