Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Строки, как одномерные массивы символовСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Наиболее частым применением одномерных массивов в языке Си являются строки, поскольку отдельного типа данных «строка символов» нет. Работа со строками реализована путем использования одномерных массивов типа char, т.е. строка символов – это одномерный массив типа char, заканчивающийся нулевым байтом (символом с кодом 0). Для нулевого байта определена символьная константа ´\0´(признак окончания строки или нуль-терминатор). Поэтому при объявлении символьных массивов следует задавать размер, достаточный для хранения всех символов строки, и нуль-терминатора: описание: char a[7] означает, что строка содержит шесть символов, а последний байт отведен под нулевой. Строковая константа в языке Си – это набор символов, заключенных в двойные кавычки. Например: “Лабораторная работа 3”. В конце строковой константы явно указывать символ ´ \0 ´ не нужно, так как это сделает компилятор. Строки можно инициализировать при объявлении, например: char S1[10]=”123456789”, S2[]=”12345”; в последнем случае размер строки будет установлен по количеству символов. Для ввода строки с клавиатуры используются стандартные библиотечные функции, прототипы которых приведены в файле < stdio.h>. Функция scanf () вводит значения для строковых переменных со спецификатором ввода %s. При этом функция scanf() вводит символы до появления первого символа “пробел”. Функция gets (), обеспечивает ввод строки с пробелами внутри этой строки. При этом ввод строки символов завершается нажатием клавиши ENTER. Обе функции автоматически ставят в конец строки нулевой байт. Кроме того, символ «&» (поместить по адресу) перед именами строковых объектов при использовании этих функций не указывают, поскольку строка – это символьный массив, а имя массива – указатель на его начало в памяти. Вывод строк производится функциями printf () или puts (). Обе функции выводят символьный массив до первого нулевого байта. Функция printf() не переводит курсор после вывода на начало новой строки, его следует предусмотреть в строке формата. Функция puts() автоматически переводит курсор после вывода строковой информации в начало новой строки. Операции над строками (массивами символов) выполняются с использованием стандартных функций, прототипы которых размещены в файле < string.h>. Наиболее часто используемые функции: 1.Функция strcpy (S1, S2) - копирует содержимое строки S2 в строку S1. 2.Функция strcat (S1, S2) - присоединяет строку S2 к строке S1 и помещает ее в массив, где находилась строка S1. Нулевой байт, который завершал строку S1, заменяется первым символом строки S2. 3. Функция strcmp (S1, S2) сравнивает строки S1 и S2 и возвращает значение 0, если строки равны (содержат одно и то же число одинаковых символов); значение <0, если S1<S2; значение >0, если S1>S2. 4.Функция strlen (S) возвращает длину строки, при этом завершающий нулевой байт не учитывается. 5. Функция strstr (S1, S2) возвращает указатель на первое вхождение строки S2 в строку S1. 6. Функция strchr (S1, S2) возвращает указатель на первое вхождение символа S2 в строку S1. 7. Функции преобразования строки S в число — возвращается число, записанное в строке S, или нуль, если строка не является записью числа: Целое: int atoi (S); Длинное целое long atol (S); Действительное double atof (S). 8. Функции преобразования числа V в строку S — в строке S формируется запись целого числа V в системе счисления с основание kod: Целое: itoa (int V, char S, int kod); Длинное целое ltoa (long V,char S, int kod); 9. Операция sizeof (параметр) вычисляет размер памяти в байтах, отводимый под объект. Здесь параметр – тип объекта или его идентификатор (но не имя функции!): sizeof(int) результат 2 байта; int b[5]; sizeof(b) результат 10 байт; int c[3][4]; sizeof(c) результат 24 байт
Пример работы со строковыми данными Листинг 7. В программе значение строки вводится с клавиатуры, затем введенная строка распечатывается в обратном порядке. /*__________________________________*/ #include <stdio.h> #include <string.h> #include <conio.h> void main(void) { char s[100]; /* объявление символьного массива */ nt i, k; clrscr(); puts(" Введите исходную строку"); gets(s); k=strlen(s); puts(" РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ\n"); for (i=k; i>=0; i--) printf("%c",s[i]); /* вывод элементов массива в обратном порядке */ printf("\n Press any key..."); getch(); }
|
||||
Последнее изменение этой страницы: 2016-12-17; просмотров: 480; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.55.138 (0.008 с.) |