- •Лабораторная работа 1
- •Лабораторная работа 2 Переменные и константы. Базовые типы. Арифметические операции
- •Операции
- •Ввод и вывод данных
- •Лабораторная работа 3 Циклический и ветвящийся поток управления
- •Алгоритмы разветвляющейся структуры
- •Операторы выбора
- •Операторы циклов
- •Операторы перехода
- •Задание
- •Лабораторная работа 4 Функции. Вызов функций с формальными параметрами, передаваемыми по значению
- •Задание
- •Лабораторная работа 5 Одномерные массивы
- •Задание
- •Лабораторная работа 6 Многомерные массивы
- •Задание
- •Лабораторная работа 7 Функции для работы с символами
- •Лабораторная работа 8 Строки, литералы. Передача строк в функции
- •Строки и литералы
- •Библиотечные функции для работы со строками
- •Выделение памяти под строки
- •Передача строк в качестве параметров функций
- •Задание
- •Лабораторная работа 9 Указатели и динамические массивы
- •Задание
- •Варианты
- •Лабораторная работа 10 Динамические структуры данных
- •Структуры и указатели
- •Задание
- •Лабораторная работа 11 Объектно-ориентированное программирование. Создание классов и объектов
- •Задание
- •Лабораторная работа 12 Знакомство со средой быстрой разработки приложений. Использование компонент библиотеки vcl
- •Лабораторная работа 13 Вывод в форму результатов работы программы
- •Лабораторная работа 14 Изучение обработчиков событий компонентов библиотеки vcl
- •Лабораторная работа 15 Использование таймера для создания различных эффектов
- •Лабораторная работа 16 Рисование в канве. Построение графиков функций
- •Лабораторная работа 17 Изучение принципа работы текстового редактора
- •Список рекомендуемой литературы
- •Оглавление
Выделение памяти под строки
В следующем фрагменте программы динамически выделяем память под строку переменной длины и копируем туда исходную строку.
//стандартная функция strlen подсчитывает количество
//символов в строке
int length = strlen(src_str);
// выделить память и добавить один байт
// для завершающего нулевого байта
char* buffer = new char[length + 1];
strcpy(buffer, src_str); // копирование строки
Операция new возвращает адрес выделенной памяти.
Передача строк в качестве параметров функций
Строки при передаче в функции могут передаваться как одномерные массивы типа char или как указатели типа char*. В отличие от обычных массивов в функции не указывается длина строки, т. к. в конце строки есть признак конца строки /0.
Пример
//Функция поиска заданного символа в строке
int find(char *s,char c)
{
for (int I=0;I<strlen(s);I++)
if(s[I]==c) return I;
return –1;
}
Задание
Запустите C++Builder.
Составьте программу, в которой с клавиатуры вводится строка символов и обрабатывается в соответствии с вариантом задания (таблица), используя функции.
Выполните компиляцию программы. При наличии ошибок внесите исправления.
Сдайте отчет преподавателю.
Варианты
№ |
Задача |
|
Для встречающихся в заданном тексте пар рядом расположенных символов указать, сколько раз встречается каждое из таких двухбуквенных сочетаний |
|
Отредактировать предложение, удаляя из него лишние пробелы, оставляя только по одному пробелу между словами |
|
В заданном тексте удалить символ "," и подсчитать число удаленных символов |
|
Для каждого символа заданного текста указать, сколько раз он встречается в тексте. Сообщение об одном символе должно печататься не более одного раза |
|
Для каждого слова заданного предложения указать долю согласных. Определить слово, в котором доля согласных максимальна |
|
Удалить все гласные буквы из строки |
|
Отредактировать заданное предложение, заменяя многоточия точкой |
|
В заданном предложении найти самое короткое и самое длинное слово |
|
Подсчитать количество слов в строке |
|
Удалить из текста символы " " и подсчитать длину сформированного текста |
|
Удалить каждое четное слово из строки |
|
Перевернуть каждое четное слово в строке |
|
Удалить из строки все слова, заканчивающиеся на гласную букву |
|
Удалить из строки все слова, начинающиеся на гласную букву |
|
Перевернуть каждое четное слово в строке |
|
В заданном тексте удалить символ "," и подсчитать число удаленных символов |
|
В заданном предложении найти самое короткое и самое длинное слово |
|
Найти симметричные слова заданного предложения, например АЛЛА |
|
Удалить все согласные буквы из строки |
|
Проверить, имеется ли в заданном тексте баланс открывающих и закрывающих скобок |
|
Удалить из текста символы "," и подсчитать длину сформированного текста |
|
Для каждого слова заданного предложения указать долю гласных. Определить слово, в котором доля гласных минимальна |
|
Удалить каждое нечетное слово из строки |
|
Отредактировать заданное предложение, заменяя запятые пробелом |
|
Из текста выбрать числа и записать в массив N |