Лабораторная работа 4.2. Строковые массивы

Цель. Получить практические навыки работы с массивами строк. Научиться обрабатывать массивы строк.

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

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

#include <iostream>

#include <string>

#include <windows.h>

using namespace std;

const int n = 20;

string cities[n] = {

"Нижний Новгород", "Москва", "Красноярск",

"Новосибирск", "Новый Уренгой", "Иркутск",

"Набережные Челны", "Одесса", "Барселона",

"Лондон", "Нижний Тагил", "Сочи", "Ялта",

"Барнаул", "Сергиев Посад", "Томск", "Киев",

"Омск", "Челябинск", "Великий Устюг"

};

void printCities() {

for (int i=0; i<n; i++) {

cout << cities[i] << endl;

}

}

void longestString() {

string res = cities[0];

for (int i=1; i<n; i++) {

if (res.length() < cities[i].length()) {

res = cities[i];

}

}

cout << res << endl;

}

void sortCities() {

for (int i=0; i<n-1; i++) {

int j_max = i;

for (int j=i+1; j<n; j++) {

if (cities[j_max] > cities[j]) {

j_max = j;

}

}

string temp = cities[i];

cities[i] = cities[j_max];

cities[j_max] = temp;

}

}

void startWith() {

cout << "Введите букву: ";

char letter; cin >> letter;

int k=0;

for (int i=0; i<n; i++) {

if (cities[i][0] == letter) {

cout << cities[i] << endl;

k++;

}

}

if (k==0) {

cout << "Таких городов нет\n";

}

}

void printMenu() {

cout << "1 - Вывести все города\n";

cout << "2 - Отсортировать по алфавиту\n";

cout << "3 - Города с буквы...\n";

cout << "4 – Самое длинное название\n";

cout << "0 - Выход\n";

}

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

while (true) {

system("cls");

printMenu();

int choice;

cout << "Ваш выбор - ";

cin >> choice;

switch (choice) {

case 1: printCities(); break;

case 2: sortCities(); break;

case 3: startWith(); break;

case 4: longestString(); break;

case 0: exit(EXIT_SUCCESS);

default: cout << "Неверный выбор\n";

}

system("pause");

}

return 0;

}

БАЗОВОЕ ЗАДАНИЕ

В данной лабораторной работе требуется реализовать меню из нескольких пунктов согласно варианту. Базовое задание является обязательным для всех.

Базовое задание. Задайте в коде программы массив, содержащий названия 20 строк, представляющих собой названия чего-либо (городов, песен, автомобилей, книг и т.д.). Названия подберите так, чтобы одни из них состояли из одного слова, а другие – из нескольких. Кроме того, сделайте так, чтобы в массиве не было много строк одинаковой длины. Слова в названиях должны разделяться ровно одним пробелом или знаком препинания и пробелом. В названиях должны присутствовать буквы как верхнего, так и нижнего регистра. Реализуйте меню из следующих пунктов: 1 – Вывод массива на экран, 0 – Выход.

ЗАДАЧИ

1. Определить, есть ли заданная строка в массиве (строку вводит пользователь).

2. Определить суммарное количество символов во всех строках.

3. Преобразовать все строки массива к верхнему регистру.

4. Преобразовать все строки массива к нижнему регистру.

5. Найти самую длинную строку в массиве и сообщить ее длину.

6. Найти самую короткую строку в массиве и сообщить ее длину.

7. Отсортировать массив по алфавиту по возрастанию.

8. Отсортировать массив по алфавиту по убыванию.

9. Отсортировать массив по длине по возрастанию.

10. Отсортировать массив по длине по убыванию.

11. Отсортировать массив по количеству слов в них по возрастанию.

12. Отсортировать массив по количеству слов в них по убыванию.

13. Вывести строки, начинающиеся с заданной буквы (букву вводит пользователь).

14. Определить количество строк, начинающихся с заданной буквы (букву вводит пользователь).

15. Определить количество строк, длина которых не превосходит заданную длину (длину вводит пользователь).

16. Вывести строки, длина которых не превосходит заданную длину (длину вводит пользователь).

17. Определить количество строк, длина которых не меньше заданной длины (длину вводит пользователь).

18. Вывести строки, длина которых не меньше заданной длины (длину вводит пользователь).

19. Вывести все строки, состоящие из одного слова.

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

21. Определить строку, в которой больше всего слов и вывести это количество.

22. Определить строку, где больше всего гласных букв и вывести это количество.

23. Вывести все строки массива через запятую, а в конце поставить точку.

24. Определить строку, где больше всего согласных букв.

25. Вывести строки, в которых присутствуют короткие слова – не более двух букв.

26. Вывести все строки, которые являются палиндромами.

27. Вывести все строки наоборот.

28. Вывести три самые длинные строки.

29. Вывести три самые короткие строки.

30. Сообщить, есть ли хотя бы одна строка короче 4 символов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: