Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornaya_Rabota_3_условие.docx
Скачиваний:
3
Добавлен:
12.07.2022
Размер:
55.37 Кб
Скачать

2. Задание № 1

Составить программу для работы со строками.

1. В текстовой строке проверить, какая буква встречается чаще – 'a', 'b' или ‘c’. В качестве результата вывести соответствующее текстовое сообщение.

2. В текстовой строке проверить правильность расстановки круглых скобок (т.е. соответствует ли количество открывающих скобок количеству закрывающих).

3. В текстовой строке подсчитать число вхождений тройки символов 'abc'.

4. В текстовой строке определить количество слов, начинающихся с буквы 'a'.

5. В текстовой строке определить количество слов, заканчивающихся буквой 'w'.

6. В текстовой строке определить количество слов, начинающихся и заканчивающихся одной и той же буквой.

7. В текстовой строке определить количество слов, в которых есть хотя бы одна буква 'd'.

8. В текстовой строке определить количество слов, в которых содержится ровно три буквы ‘e’.

9. В текстовой строке найти самое длинное слово и вывести его на экран вместе с его длиной.

10. В текстовой строке заменить все пробелы знаком '_'.

11. В текстовой строке поменять все символы '!' на '?'.

12. На основе текстовой строки, введенной пользователем, создать новую строку, из которой будут удалены все лишние пробелы (т.е. из нескольких подряд идущих пробелов оставить один).

13. На основе текстовой строки, введенной пользователем, создать новую строку, в которой все пары символов 'ph' будут заменены на символ 'f'.

14. На основе текстовой строки, введенной пользователем, создать новую, из которой будут удалены все знаки ‘-’ и ‘+’.

15. В текстовой строке найти количество символов арифметических операций (т.е. знаков ‘+’, ‘-‘, ‘/’ и ‘*’).

16. На основе текстовой строки, введенной пользователем, создать новую строку, где каждый третий символ заменен знаком ‘#’.

17. Подсчитать, сколько раз пара 'th' входит в заданный текст.

18. В текстовой строке найти самое короткое слово и вывести его на экран вместе с его длиной.

19. В строке заданы фамилия, имя и отчество студента (именно в таком порядке). Напечатайте его фамилию и инициалы.

20. Дана текстовая строка, слова в которой разделены пробелами. Найти количество слов в тексте.

21. Напишите программу, которая позволяет ввести строку и вывести ее, сокращая каждый раз на один символ до тех пор, пока в строке не останется один символ.

22. Дана текстовая строка. Определить является ли она положительным или отрицательным целым числом.

23. В текстовой строке найти количество точек и запятых.

24. В текстовой строке определить количество слов, в которых содержатся буквы ‘x’ и ‘y’ (и та, и другая вместе).

25. Дана текстовая строка. Найти в ней количество цифр ‘1’, ‘2’ и ‘3’.

26. Дана текстовая строка. Найти в ней количество слов, длина которых равна 5 символам.

27. В текстовой строке заменить все символы ‘@’ на ‘#’.

28. Дана текстовая строка. Найти в ней количество нулей.

3. Класс string

Тип данных string требует подключения к программе заголовочного файла <string>. Основные действия с подобными строками выполняются с помощью стандартных операций и методов, а длина строки изменяется динамически в соответствии с потребностями.

Простейший пример использования.

#include <iostream>

#include <string>

using namespace std;

int main()

{

string s1, s2, s3, s4;

s1 = "new string";

cout << "Enter string " << endl;

getline(cin,s2);

cout << s2 << endl;

s3 = s1;

if (s3 > s2) cout << s3 << endl;

s4 = s1 + s2;

cout << s4 << endl;

system("pause");

}

Таблица 2

Основные метоы для работы со строками класса string

Функция

Назначение

s.append(str)

добавляет в конец строки строку str

s.assign(str)

присваивает строке s значение строки str

s.clear()

отчищает строку, т.е. удаляет все элементы в ней

s.compare(str)

 

сравнивает строку s со строкой str и возвращает 0 в случае совпадения

s.copy(C, I, N)

 

копирует из строки s в строку C(может быть как строка типа string, так и строка типа char) I символов, начиная с N-го символа

bool b = s.empty()

если строка пуста, возвращает true, иначе false

s.erase(I,N)

удаляет N элементов с I-го символа

s.find(str,I)

ищет строку str начиная с I- го символа

s.insert(pos, s1)

вставляет строку s1 в строку s, начиная с позиции pos

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.swap(str)

меняет содержимое s и str местами.

s.size()

возвращает число элементов в строке.

Чтобы обращаться к отдельным символам строки типа string, можно воспользоваться операцией взятия индекса ([]), или при помощи метода at(). Например:

cout << s1[1] << endl;

cout << s1.at(2) << endl;

Если индекс превышает длину строки, порождается исключение out_of_range.