- •Основные понятия
- •Определение С-строк
- •строка как массив символов
- •строка как указатель на char
- •особенности работы с С-строками в С++
- •Операции со строками
- •Инициализация строки
- •Возможные ошибки при работе со строками
- •Ввод-вывод строк
- •преобразование значения базового типа в С-строку
- •ввод ограниченного числа символов строки
- •функция вывода строки
- •особенности посимвольного вывода строки
- •Копирование строк
- •Оптимизация текста программы на примере функции копирования
- •Функции для работы с С-строками
- •Определение длины строки
- •Копирование строк
- •Объединение строк
- •Сравнение строк
- •Поиск символа в строке
- •Проверка принадлежности символа некоторому множеству
- •Поиск строки в строке
- •Преобразование и заполнение строк
- •преобразование строки в число
- •преобразование строчных символов строки в прописные и наоборот
- •реверс строки
- •заполнение строки символом
- •пример применения функций преобразования
- •Выделение лексем
- •Динамические строки
- •Копирование строки в динамическую строку
- •Передача строки в функцию в качестве параметра
- •Пример_1: в main()– строка-массив; в функции – строка-указатель
- •Пример_2: в main() – строка-указатель; в функции – строка-указатель
- •Передача в функцию массива строк
- •Примеры работы со строками
- •Определение длины строки с помощью функции пользователя
- •Реверс строки (перегрузка функций)
- •Удаление начальных пробелов из строки
- •Проверка, является ли строка целым числом
- •Проверка, является ли строка 16-ичным целым числом
- •Проверка, является ли строка дробным числом без знака
- •Перевод двоичного числа в десятичное
- •Перевод шестнадцатеричного числа в десятичное
- •Перевод десятичного числа в двоичное
- •Перевод десятичного числа в с/с от 2-х до 10
- •Перевод десятичного числа в шестнадцатеричное
- •Определение количества слов в фразе
- •Выделение слов в тексте по нажатию произвольной клавиши
- •Сортировка вводимых с клавиатуры строк *
- •Сортировка строк в зависимости от признака, передаваемого функции main() через аргумент argv *
- •Инвертирование строки с помощью рекурсивной функции
Лекция 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 |
|