Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторные работы / работа со строками в языке программирования СИ.doc
Скачиваний:
76
Добавлен:
28.01.2014
Размер:
125.95 Кб
Скачать

1.3. Операции ввода/вывода для строк

Операции ввода/вывода для строк в языке СИ выполняются с использованием вызовов функций. Эти функции входят в стандартную библиотеку ввода/вывода, описанную в стандартном заголовочном файле stdio.h, то есть в начальной секции программы следует описать следующую директиву:

#include <stdio.h>

При компиляции программы, содержащей эту директиву, содержимое файла stdio.h становится частью программы.

Рассмотрим простые операции ввода/вывода для строк.

Простейшим способом получить строку из стандартного ввода является функция gets(имя строки). Вводимые символы принимаются до тех пор, пока не будет нажата клавиша Enter. Функция gets() заменяет завершающий символ ‘\n’ (символ перехода на новую строку) на символ ‘\0’.

Для вывода строки на устройство стандартного вывода используется функция puts(имя строки). Выводимая строка завершается символом перехода на новую строку.

Для ввода и вывода строк также могут использоваться функции scanf() и printf(). Напомним, что эти функции предназначены для ввода и вывода различных типов данных в одном выражении. Синтаксис для приема строки будет выглядеть следующим образом:

scanf ("%s",&имя строки);

где %s – описатель формата, который определяет, что здесь принимается строковое выражение. Имя строки – это символьный массив, который должен быть объявлен заранее.

Синтаксис для приема строки будет выглядеть следующим образом:

printf ("%s",имя строки).

1.4. Строковые функции

СИ предоставляет широкий выбор строковых функции, которые описаны в стандартном заголовочном файле strihg.h.

С помощью этих функций можно выполнить следующие операции:

  • сцепление строк (одна строка присоединяется к концу другой строки);

  • сравнение строк;

  • поиск символа в строке;

  • копирование одной строки в другую;

  • вычисление длины строки.

Для объединения двух строк в одну используется функция:

strcat(имя строки1, имя строки2);

где имя строки1 и имя строки2 – это два символьных массива, которые должны быть объявлены и инициализированы.

Операция соединения двух строк в одну носит название конкатенации.

Равенство (или неравенство) двух чисел можно проверить при помощи операторов сравнения (отношения). Но для сравнения строк необходимо использовать специальную функцию. Функция

strcmp(имя строки1, имя строки2);

сравнивает две строки и возвращает целое значение, отражающее результат этого сравнения. В результате сравнения функция возвращает одно из значений:

  • число меньше нуля, если имя строки1<имя строки2;

  • нуль, если имя строки1 совпадает с имя строки2;

  • число больше нуля, если имя строки1>имя строки2.

Числовые значения, которые возвращаются после каждого сравнения, являются арифметическими разностями значений ASCII – кодов тех символов, которые являются первыми несовпадающими в сравниваемых строках.

Для того, чтобы определить, встречается ли некоторый символ в заданной строке, используется функция:

strchr (имя строки, имя символа),

где имя строки – символьный массив или строка, имя символа является символьной переменной, которая содержит значение (код символа) - образец для поиска. Функция возвращает указатель на значение, найденное в строке, или NULL, если символ так и не встретился.

Язык СИ не имеет возможности работать со строкой как с единым целым. Поэтому присваивание значения одной строки другой требует использования функции strcpy(). Рассмотрим синтаксис этой функции:

strcpy(имя строки1, имя строки2),

где имя строки1 и имя строки2 – это символьные массивы, которые должны быть объявлены и инициализированы заранее. Функция копирует содержимое массива (строки) имя строки1 в массив (строку) имя строки2.

Функция strlen(имя строки) возвращает длину строки. Длина строки обычно используется в программах, которые работают с отдельными символами строки в цикле.