Информатика: Методические указания к лабораторным работам № 1-5. Функции. Обработка символьных данных. Организация работы с файлами, страница 23

Дана строка из цифр и букв латинского алфавита в произвольном порядке. Распечатать те группы цифр, в которых цифра 7 встречается не более двух раз (группа цифр – это последовательность цифр, обрамленная буквами).

Вариант 16

Дана строка, в которой слова разделены одним пробелом и более. Удалить из нее все пробелы.

Вариант 17

Дана строка из фамилии студентов и их оценок, сведения разделены пробелом (например, Иванов345 Петров233 Сидоров454). Удалить из строки всех неуспевающих студентов (имеющих хотя бы одну двойку).

Вариант 18

Написать и протестировать функцию DELETE(s1, s2), которая удаляет из строки  s1  все символы, встречающиеся в строке  s2.

Вариант 19

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

Вариант 20

Составить программу, которая реверсирует каждое слово стро-ки str.

Контрольные вопросы

1.  В чем разница между строками  С++  и  С-строками ?

2.  Перечислите и приведите примеры способов инициализации объектов string.

3.  Что означают записи s3.insert(2,s4, 3, 5) и s2.erase()?

4.  string s("от великого до смешного один шаг ");

int i= s.find("ог");

cout<<i; // ?

i=s.find_first_of("ог");

cout<<i;

s.erase(15,8);cout << s; // ?

5. Как сравнить две строки?

6. Как можно определить длину строки?

 
 



Лабораторная работа № 4

Структуры

Цель работы

Приобретение навыков создания новых типов данных на примере структур.

Пояснения к работе

Структуры это совокупность логически связанных переменных, возможно, различных типов, сгруппированных под одним именем для удобства дальнейшей обработки. Именно тем, что в них могут храниться данные разных типов, они и отличаются от массивов, хранящих данные одного типа.

Прежде всего, необходимо создать шаблон структуры (или, говорят, надо описать структуру) (пример 1).

Пример 1

struct DATE

{ int day; // День

int month; // Месяц

int year; // Год

stringday_name; // Название дня недели

stringmonth_name; // Название месяца

};

Описание структуры начинается с ключевого слова struct, за которым следует необязательное имя (в данном случае DATE), которое называется именем типа структуры(иногда его называют тэгом или ярлыком структуры). Этот ярлык именует структуру и в дальнейшем может использоваться для сокращения подробного описания. Переменные, упоминающиеся в описании, называются элементами. Следом за правой фигурной скобкой, заканчивающей список элементов, может следовать список переменных, как и в случае базисных типов. Вот почему в приведенном выше описании структуры после закрывающей фигурной скобки стоит точка с запятой; она завершает пустой список. Описание struct {....} p1, p2, p3; синтаксически аналогично int p1, p2, p3; в том смысле, что каждый из операторов описывает p1, p2, p3 как переменные соответствующего типа и приводит к выделению для них памяти. Описание же структуры без последующего списка переменных не выделяет никакой памяти. Оно только определяет форму структуры и действует как шаблон. Если такое описание снабжено ярлыком (именем типа), то его можно позже использовать при определении фактических экземпляров структуры. Например, используя указание выше описание DATE,можно с помощью строки

DATE a1, a2;

описать структурные переменные a1, a2, каждая из которых строится по шаблону, введенному структурой DATE.Любая переменная a1, a2 содержит в строго определенном порядке элементы day, mont, year, day_name,.

После создания структурной переменной надо ее инициализировать, например:

a1 = {17, 3, 1989, «пятница», «февраль»};

Язык С++ позволяет одновременно объявлять и инициализировать структурные переменные

DATEa1 = {17, 3, 1989, «пятница», «февраль»};

Для доступа к элементам структуры используют операцию – точку в виде имя_структуры. имя_элемента_структуры. Например, a1.dayили a1.day_name[9] (десятый элемент массива day_name).