Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб С++_ОСНОВЫ ПРОГРАММИРОВАНИЯ_ч_2_изм_чис...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
803.84 Кб
Скачать

3.2.Строковый тип string

Как вы уже поняли, пользоваться С-строками крайне неудобно -постоянно надо думать о размерах строк, код получается сложный, нечитаемый, Это было сделано из-за желания достичь максимального быстродействия языка С (вспомните, его задачей была замена низко­уровневого ассемблера). C++ призван в первую очередь облегчить жизнь программисту, поэтому специально для строковых операции в нем появился новый тип - string. Чтобы использовать данный тип необходимо подключить одноименный заголовочный файл

(Листинг 3.73):

Листинг 3.73. Использование типа string

Как уже видно из приведенного простого примера (Листинг 3.60), типом string пользоваться гораздо удобней - он поддерживает oneрации конкатенации (объединения), сравнения, присваивания, индексирования и много других, кроме того, многочисленные функ­ции-методы через оператор "точка", вот некоторые из них:

size_t.length () -возвращает длину строки;

void swap (string &s) -обменивает содержимое строки с содержимым

строки s;

string& insert (size_ type pos, const char *s),

string& insert(size_ type pos, const string &s),

string& insert (size_ type pos, size type count, char c) -вставляет элемент

(строку или символ) в строку, начиная с позиции pos. В варианте №3 (вставка символа) есть дополнительный пара­метр count, указывающий сколько раз вставить символ с.

Пример. Показать использование методов тина string (Листинг 3.74).

Листинг 3.74. Использование методов типа string

В примере, приведенном выше (Листинг 3.74), показана тонкость использования типа string: более эффективно передавать string в функции как ссылку (или, как в примере, константную ссылку). Как вы уже знаете, что при передаче переменной в качестве параметра-ссылки, в функцию передается лишь адрес переменной (см. тему "Функции"). Если для базовых типов вроде int, bool, float и т.д. это не критично, то для сложных типов, таких как string — это имеет большое значение, т.к. строки могут быть очень большого размера (вплоть до 232 символов).

4.Задание

4.1.Создайте программу «Строковый тип string» (листинг 3.75):

Листинг 3.75. Программа «Строковый тип string»

В программе проводится формирование строковых переменных s1="Hello" и s2="world", их сложение в строковой переменной s3=s1+" ,"+s2+"!!! с выводом на печать переменной s3. Результатом работы программы будет печать текста Hello, world!!!

4.2.Создайте программу «Разбиение строки на подстроки заданной длины» (листинг 3.76):

Листинг 3.76. Программа «Разбиение строки на подстроки заданной длины»

В начале программы вводятся строка символов и длина подстроки, на которые будет разбита данная строка. Далее организуется циклическая операция, в которой посимвольно выводятся на печаль символы введенной строки, пока не будет достигнута длина подстроки. После этого произойдет перевод строки и будет печататься новая подстрока и т. д. Вывод на печать закончится по достижение длины всей строки.

4.4.В отчете к данной лабораторной работе опишите назначение каждого оператора для программ, которые приведены в задании, а также структурную схему (блок-схему) программы «Разбиение строки на подстроки заданной длины».

62

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]