КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция 12
Строки Строка – конечная последовательность символов. Количество символов в строке называется её длиной (текущей длиной). Допустимы строки нулевой длины. · Основные операции над строками: · поиск символов в строке; · замена символов в строке; · поиск, замена, удаление подстрок; · вставка в строку новой подстроки; · сцепление (конкатенация) двух строк. В результате выполнения этих операций длина строки может измениться! Средства C++ для работы со строками Для работы со строками символов язык C++ предоставляет две возможности: · работу с массивами данных типа char (функции для работы с такими данными описаны в файлах <string.h> или <cstring> · класс string, описанный в файле <string> Работа со строками фиксированной длины Если длина строки известна, не равна нулю и не изменяется, для её хранения можно использовать массив соответствующего размера. Пример: номер зачётной книжки всегда состоит из 7 символов char nz[7]; nz[0] = '1'; nz[1] = '0'; nz[2] = '2'; nz[3] = '3'; nz[4] = '1'; nz[5] = '6'; nz[6] = '9'; … for (int i=0; i<7; i++) cout << nz[i]; Неудобства такого подхода – строку можно обрабатывать только посимвольно! Нуль-терминированные строки Нуль-терминированные строки – строки, в которых символ с кодом 0 является признаком конца строки и не входит в её состав. Нуль-терминированные строки используются: · в строковых константах; · при вводе-выводе; · в стандартных функциях, описанных в файле <string.h> Примеры строковых констант: Определение и инициализация строк Такой вид инициализации является краткой формой стандартной инициализации массива Массив и указатель: различия h1 -синоним адреса первого элемента массива, т.е. &h1[0]. Нельзя изменить h1, так как это означало бы изменение адреса массива в памяти. Можно использовать h1+1 (выбор следующего символа строки), но нельзя использовать выражение ++ h1. В случае с указателем также создается в статической памяти массив для строки (из 33 символов). Но кроме этого выделяется еще место для переменной - указателя h2. Сначала эта переменная указывает на начало строки, но ее значение может изменяться: ++h2 будет указывать на второй символ строки. Использование операции сложения с указателем для выбора следующих символов строки допустимо для обоих вариантов: for(int i=0;i<16;i++) Операцию увеличения можно использовать только для указателя: Инструкция h2 = h1 не уничтожит строку про язык Cи, а только изменит адрес, записанный в h2. Ввод-вывод строк Так как в С++ нет проверки выхода индекса за границы массива, можно получить непредсказуемые результаты.
Поэтому можно проверять правильность ввода и определять конец ввода (EOF): while (gets(name)!=NULL)… При неудачном завершении работы функция puts возвращает значение EOF, иначе – ненулевое число. puts -записать строку в стандартный файл вывода stdout.
Дата добавления: 2014-01-07; Просмотров: 308; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |