Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 34.docx
Скачиваний:
25
Добавлен:
30.04.2022
Размер:
74.1 Кб
Скачать

Лабораторная работа № 3 Анализ строки

Цель работы: развить навыки работы с массивами символов и динамической памятью в C++

Задание: Реализовать программу, которая по введенному пользователем предложению из нескольких слов, разделенных пробелами, выводит слова, входящие в предложение, отсортированные по алфавиту и без повторяющихся слов. Также программа должна отображать количество вхождений в строку каждого повторяющегося слова.

Пример:

Вводимое выражение: один два три один два один

Результат: два, один, три;

два – 2, один – 3.

Инструкции к выполнению:

  • Для хранения информации о повторяющихся словах использовать динамическую память.

Лабораторная работа № 4 Преобразование форматов представления данных

Цель работы: закрепить знания базовых конструкций языка C++, а также улучшить навыки работы с функциями C++

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

Инструкции к выполнению:

  • При реализации учитывать возможность преобразования отрицательных чисел.

  • Вывод результатов преобразований производить в функции main.

  • Предусмотреть преобразование форматов представления как для десятичной, так и для шестнадцатеричной записи.

Теоретическая справка

В С++ существует 2 типа строк.

Первый из них - это массив переменных типа char.

Переменная типа char хранит в себе 1 символ. Размер такой строки равняется размеру массива - 1, т.к. последний элемент содержит NULL (пустая переменная без значения), который обозначает символ конца строки.

Например:

char name[50];

cin>>name;

cout<<"Hello "<<name<<endl;

Второй из вариантов, более удобный - это специальный класс string.

Для его работы необходимо в начале программы подключить заголовочный файл string:

#include <string>

В отличии от типа char, string является классом.

Теперь чтобы создать строку достаточно написать:

string s;

Для записи в строку можно использовать оператор =

s="Hello";

Пример работы с классом string:

string name;

cout<<"Enter your name"<<endl;

cin>>name;

cout<<"Hi "<<s<<"!"<<endl;

Но кроме этого существует множество функций для работы со строками.

  • s.append(str) - добавляет в конец строки строку str. Можно писать как s.append(переменная), так и s.append("строка");

  • s.assign(str) - присваивает строке s значение строки str. Аналогично записи s=str;

  • int i=s.begin() - записывает в i индекс первого элемента строки

  • int i=s.end() - аналогично, но последнего

  • s.clear() - как следует из названия, отчищает строку. Т.е. удаляет все элементы в ней

  • s.compare(str) -сравнивает строку s со строкой str и возвращает 0 в случае совпадение (на самом деле сравнивает коды символов и возвращает из разность)

  • s.copy(куда, сколько, начиная с какого) - копирует из строки s в куда (там может быть как строка типа стринг, так и строка типа char).

  • bool b=s.empty() - если строка пуста, возвращает true, иначе false

  • s.erase(откуда, сколько) удаляет n элементов с заданной позиции

  • s.find(str,позиция) - ищет строку str начиная с заданной позиции

  • s.insert(позиция,str, начиная, beg, count) - вставляет в строку s начиная с заданной позиции часть строки str начиная с позиции beg и вставляя count символов

  • int len=s.length() - записывает в len длинну строки

  • s.push_back(symbol) - добавляет в конец строки символ

  • s.replace(index, n,str) - берет n первых символов из str и заменяет символы строки s на них,  начиная с позиции index

  • str=s.substr(n,m) - возвращает m символов начиная с позиции n

  • s.size() - возвращает число элементов в строке.

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