Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОАиП.docx
Скачиваний:
137
Добавлен:
09.03.2016
Размер:
139.71 Кб
Скачать

34.Стандартные функции работы со строками. Функции работы со строками c

Давайте вначале посмотрим, что нам может дать наша библиотека stdio.h, которая содержит парочку функций работы со строками:

  1. int getchar()

возвращает значение символа, введенного вами с клавиатуры. А вот и вывод этого числа:

  1. char *gets (char *s)

функция просит вводить пользователя строку, которую она помещает в массив s, пока пользователь не нажмет 'Enter':

  1. int putchar (int c)

печатает символ, который имеет код 'c':

  1. int puts (char *s)

печатает строку s и переводит курсор на новую строку:

  1. int sprintf (char *s, char *format, ...)

Выполняет тоже, что и функция printf, за тем исключением, что записывает данные в массив s:

  1. int sscanf (char *s, char *format, ...)

происходит ввод значений не с клавиатуры, а из массива s:

   string.h

Вот перечень функций:

  1. char *strcpy (char *srt1, char str2)

Копирует строку str2 в строку str1, возвращаемым значением этой функции является новая, полученная строка str1

  1. char *strncpy (char *srt1, char str2, int n)

эта функция делает все тоже самое, что и предвидущая, за исключением того, что тут возможен контроль количества копируемых символов:

  1. char *strcat (char *srt1, char str2)

Функция добавляет в строку str1 строку str2. Т.е. на место нуль-терминатора в строке str1, вставляется строка str2:

  1. char *strncat (char *srt1, char str2, int n)

Добавляет к первой строке ровно n символов из второй строки

35.Обработка символьной информации.

getchar за одно обращение к ней выдает в качестве результата один символ, поступивший с системного ввода. Мы можем рассматривать getchar как функцию, имеющую заголовок

int getchar()

видите, у нее совсем нет аргументов и она возращает значение типа - это значение символа во внутреннем представлении его для данной ЭВМ(напрмер в ACSII). Таким образом после обращения

c = getchar()

переменная с содержит очередной символ, набранный вами на клавиатуре.

Функция putchar за одно обращение к ней выдает один символ в стандарный выходной поток. Вызов этой функции имеет вид:

putchar(c);

c- переменная символьного типа, котрой предварительно было присвоено некоторое значение.

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

Для преобразования числа в строку можно воспользоваться функцией sprintf из библиотеки stdio.h.

36.Инициализация многомерных массивов.

В языке С массивы при объявлении можно инициализировать. Общая форма инициализации массива аналогична инициализации переменной:

тип имя_массива[размер1]...[размер№] = {список_значений};

Список_значений представляет собой список констант, разделенных запятыми. Типы констант должны быть совместимыми с типом массива. Первая константа присваивается первому элементу массива, вторая — второму и так далее. После закрывающейся фигурной скобки точка с запятой обязательна.

Многомерные массивы инициализируются так же, как и одномерные. В следующем примере массив sqrs инициализируется числами от 1 до 10 и их квадратами:

int sqrs[10][2] = { 1, 1, 2, 4, 3, 9, 4, 16, 5, 25, 6, 36, 7, 49, 8, 64, 9, 81, 10, 100 };

Инициализируя многомерный массив, для улучшения наглядности элементы инициализации каждого измерения можно заключать в фигурные скобки. Этот способ называетсягруппированием подагрегатов (subaggregate grouping). С использованием этого приема предыдущий пример может быть записан так:

int sqrs[10][2] = { {1, 1}, {2, 4}, {3, 9}, {4, 16}, {5, 25}, {6, 36}, {7, 49}, {8, 64}, {9, 81}, {10, 100} };

При такой записи, если внутри группы недостаточно констант инициализации, то оставшиеся элементы группы автоматически заполняются нулями.