Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Обработка строк






 

Опишем только основные функции для работы со строками. Полный их перечень можно найти в справочниках по языку, например, в [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>


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал