Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
30.05.2020
Размер:
428.13 Кб
Скачать

Лекция 13

 

Строки

 

Основные понятия.....................................................................................................................

2

Определение С-строк................................................................................................................

3

строка как массив символов.................................................................................................

3

строка как указатель на char.................................................................................................

3

строка как элемент массива строк .......................................................................................

3

строка как элемент массива указателей на char..................................................................

3

особенности работы с С-строками в С++............................................................................

3

Операции со строками ..............................................................................................................

4

Инициализация строки..........................................................................................................

4

Возможные ошибки при работе со строками .....................................................................

5

Ввод-вывод строк..................................................................................................................

6

преобразование значения базового типа в С-строку....................................................

10

ввод ограниченного числа символов строки ................................................................

10

функция вывода строки ..................................................................................................

10

особенности посимвольного вывода строки...............................................................

11

Копирование строк..............................................................................................................

11

Оптимизация текста программы на примере функции копирования.........................

12

Функции для работы с С-строками....................................................................................

13

Определение длины строки............................................................................................

13

Копирование строк..........................................................................................................

13

Объединение строк..........................................................................................................

15

Сравнение строк ..............................................................................................................

16

Поиск символа в строке..................................................................................................

17

Проверка принадлежности символа некоторому множеству .....................................

17

Поиск строки в строке.....................................................................................................

18

Преобразование и заполнение строк.............................................................................

19

преобразование строки в число..................................................................................

19

преобразование числа в строку..................................................................................

20

преобразование строчных символов строки в прописные и наоборот..................

21

реверс строки...............................................................................................................

22

заполнение строки символом.....................................................................................

23

пример применения функций преобразования.........................................................

23

Выделение лексем ...........................................................................................................

23

Динамические строки..............................................................................................................

24

Копирование строки в динамическую строку..................................................................

24

Передача строки в функцию в качестве параметра..............................................................

25

Пример_1: в main()– строка-массив; в функции – строка-указатель..............................

25

Пример_2: в main() – строка-указатель; в функции – строка-указатель........................

27

Передача в функцию массива строк......................................................................................

27

Примеры работы со строками................................................................................................

27

Определение длины строки с помощью функции пользователя....................................

27

Реверс строки (перегрузка функций).................................................................................

28

Удаление начальных пробелов из строки.........................................................................

28

Проверка, является ли строка целым числом...................................................................

29

Проверка, является ли строка 16-ичным целым числом .................................................

29

Проверка, является ли строка дробным числом без знака..............................................

29

Перевод двоичного числа в десятичное..........................................................................

30

Перевод шестнадцатеричного числа в десятичное.........................................................

30

Перевод десятичного числа в двоичное............................................................................

30

Перевод десятичного числа в с/с от 2-х до 10..................................................................

31

Программирование – лекция 13 (лекции Стрикелевой Л.В.)

 

 

1

Перевод десятичного числа в шестнадцатеричное..........................................................

31

Определение количества слов в фразе ..............................................................................

32

Выделение слов в тексте по нажатию произвольной клавиши.......................................

32

Сортировка вводимых с клавиатуры строк *....................................................................

33

Сортировка строк в зависимости от признака, передаваемого функции main() через

 

аргумент argv * ....................................................................................................................

34

Инвертирование строки с помощью рекурсивной функции...........................................

34

Основные понятия

В С отсутствует специальный строковый тип и поэтому используются массивы элементов типа char, всегда содержащие в конце последовательности значащих символов код ’\0’, (концевой символ строки, иначе – ее терминальный символ). Этот тип называют также char*-строками, так как он может быть представлен в виде указателя на char.

В С++ сохранены те же возможности и разрешено использовать все библиотечные функции языка С для р боа ыт со стр оамик (будем называть их С-строки). Для подключения этих библиотечных средств к программам используются заголовки <cstring>

и <string.h>.

Применение С-строк в р дея случаев неудо ноб во: -первых, С-строка всегда ограничена тем массивом с элементами типа char, который выделен для ее представления; во-вторых, в функциях для работы с С-строками нет контроля за их границами. Поэтому в стандартную библиотеку языка С++ введено несколько классов, позволяющих определять строковые переменные в виде объектов и выполнять над ними ряд операций (например, строку как объект класса string будем рассматривать во 2-ом семестре).

Тем не менее, свое знакомство со строками мы начнем с С-строк.

Как и другие типы данных, строки могут быть: переменными и константами.

Напомним, некоторые особенности использования строковых констант.

В строковый литерал можно включать непечатаемые символы:

”abc\ndef” //символы будут напечатаны в две строки ”abc\\ndef” //будет выдано abc\ndef

Длинный строковый литерал предполагает запись:

”abc\

def”

// напечатает abcdef; т.к. \ символ продолжения строки

НО ”abc<enter>

def”

// error!!!

Строка ”abc\000def” будет обрабатываться как abc (‘\0’ – означает конец строки).

В строковом литерале возможно использование нескольких строк:

"текст1""текст2""текст3";

Оператор

cout << "abc\\ndef" "aaa" "mmm"<< endl; выведет строку abc\ndefaaammm.

Программирование – лекция 13 (лекции Стрикелевой Л.В.)

2

 

Соседние файлы в папке Лабораторні роботи