Лабораторная работа № 4 «Строковый тип данных»
Цели:
- Изучить особенности работы со строковым типом данных в среде Турбо Си++.
- Написать программу, обрабатывающую стоковые данные.
Преподавателю на проверку:
- Программа, которая:
- запрашивает какую из приведенных в варианте задач следует выполнить,
- запрашивает необходимые данные в main,
- передает входные данные в соответствующую функцию,
- результат выводится из main.
1. Блок вариантов первой задачи по теме «Строки»
1. Подсчитать, сколько раз в данной строке встречается буква Ch, вводимая с клавиатуры.
2. Дан текст, в котором записано одно из стихотворений А.С. Пушкина. Сколько раз в каждой строке встречается данный символ?
3. Дан текст, в котором записано одно из стихотворений А.С. Пушкина. Сколько раз встречаются гласные буквы?
4. Из заданной строки удалить среднюю букву, если длина строки нечетная, иначе — удалить две средние буквы.
5. Заменить в заданной строке все буквы Ch1 на Ch2 (их значения вводить с клавиатуры).
6. Заменить все вхождения подстроки Str1 на подстроку Str2, которые вводятся с клавиатуры.
7. В заданной строке после каждой буквы Ch вставить строку Str1.
8. В заданной строке удвоить каждое вхождение буквы Ch.
9. Даны две строки. Если они начинаются с одинаковых символов, то напечатать «ДА», иначе –«НЕТ».
10. Дана последовательность слов. Напечатать все слова, отличные от слова «hello”.
11. Дана последовательность слов. Напечатать все слова в алфавитном порядке.
12. Дана последовательность слов. Напечатать все слова последовательности, которые встречаются в ней по одному разу.
13. Дано предложение. Напечатать все различные слова.
14. Дана последовательность слов. Напечатать все слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова все предыдущие вхождения последней буквы.
15. Дана последовательность слов. Напечатать все слова, предварительно преобразовав каждое из них по следующему правилу: оставить в слове только первые вхождения каждой буквы.
16. Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: в слове нет повторяющихся букв.
17. Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: буквы слова упорядочены по алфавиту.
18. Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: слово совпадает с начальным отрезком латинского алфавита (a, ab, abc, abсd,...).
19. Дана последовательность слов. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: слово симметрично.
20. Составьте программу вывода самой большой цифры в записи заданного числа.
21. Найти сумму всех чисел строки.
22. Ввести предложение, слова в которых разделены пробелами и запятыми. Распечатать это предложение, удалив из него те слова, которые встретились там более одного раза.
23. Даны две символьные строки, состоящие только из цифр (длина каждой более 10 символов). Считая, что в этих строках находятся очень длинные числа, сформировать третью строку- сумму этих чисел.
24. Дан произвольный текст. Отредактировать текст так, чтобы:
a) между словами был ровно один пробел;
b) предложения в тексте разделялись ровно двумя пробелами.
25. Ввести два предложения и распечатать самые длинные слова, общие для этих предложений. Если нужных слов нет - сообщить об этом.
2. Блок вариантов второй задачи по теме «Строки»
1. Дана символьная строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке.
2. Дана символьная строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b.
3. Дана символьная строка. Подсчитать в ней количество вхождений букв r, k, t.
4. Дана символьная строка. Определить, сколько в ней знаков «*», «;», «:».
5. Дана символьная строка, cодержащая текст, который заканчивается точкой. Найти длину самого короткого слова и самого длинного слова.
6. Дана строка символов, среди которых есть двоеточие (:). Определить, сколько символов ему предшествует.
7. Дана символьная строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.
8. Дана символьная строка. Преобразовать ее, удалив каждый символ «*» и повторив каждый символ, отличный от «*».
9. Дана символьная строка. Определить, сколько раз входит в нее группа букв : abc.
10. Дана символьная строка. Подсчитать количество букв k в последнем ее слове.
11. Дана символьная строка. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран.
12. Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а.
13. Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри этих скобок.
14. Имеется строка символов, содержащая буквы латинского алфавита и цифры. Вывести на экран длину наибольшей последовательности цифр, идущих подряд.
15. Дан набор слов, разделенных точкой с запятой (;). Набор заканчивается двоеточием (:). Определить, сколько в нем слов, заканчивающихся буквой а.
16. Дана строка символов, заканчивающаяся точкой. Указать те слова, которые содержат хотя бы одну букву k.
17. Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой (;). Найти те слова, которые начинаются и заканчиваются одной и той же буквой.
18. В символьной строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен.
19. В заданной строке удалить все символы двоеточие (:) и подсчитать количество удаленных символов.
20. В символьной строке между словами вставить вместо пробела запятую и пробел.
21. Удалить часть символьной строки, заключенную в скобки (вместе со скобками).
22. Определить, сколько раз в строке встречается заданное слово.
23. В заданной строке имеется одна точка с запятой. Подсчитать количество символов до точки с запятой и после нее.
24. Дана строка символов. Преобразовать ее, заменив все двоеточия (:), встречающиеся среди первых n/2 символов, на точку с запятой (;), и заменив точками все восклицательные знаки, встречающиеся среди символов, стоящих после n/2 символов.
25. Вычислить s—сумму порядковых номеров всех букв, входящих в слово SUM.
3. Блок вариантов третьей задачи по теме «Строки»
1. Символьная строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).
2. В записке слова зашифрованы – каждое из них записано наоборот. Расшифровать сообщение.
3. Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке.
4. Символьная строка, содержащая произвольный русский текст, состоит не более, чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например: а – 25 раз, к – 3 раза.
5. Упорядочить данный массив английских слов по алфавиту, рассматривая только первый символ каждого слова.
6. Выписать из символьной строки слова, начинающиеся и заканчивающиеся на одну и ту же букву.
7. Даны две символьные строки А и В. Составьте программу, проверяющую, можно ли из букв, входящих в А, составить В. (буквы можно использовать не более одного раза и можно переставлять). Например, А = ИНТЕГРАЛ; В = АГЕНТ – составить можно; если В = ГРАФ – составить нельзя.
8. Символьная строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.
9. Двумерный массив М N содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую можно ли из этих букв составить данное слово S.
10. Результаты вступительных экзаменов представлены в виде списка из N строк, в каждой строке которого записаны фамилия студента и отметки по каждому из М экзаменов. Определить количество абитуриентов, сдавших вступительные экзамены на «отлично».
11. Составить программу преобразования натуральных чисел, записанных в римской нумерации, в десятичную систему счисления.
12. Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте.
13. В символьном массиве хранятся фамилии и инициалы учеников класса. Требуется напечатать список класса с указанием для каждого ученика количества его однофамильцев.
14. Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи должны быть только символы 0 и 1). Если число введено неверно, повторить ввод. При правильном вводе перевести число в десятичную систему счисления.
15. Программа. Напечатать заданный непустой текст, заменив в нем все пары ph на букву f.
16. Напечатать заданный текст, удалив из него лишние пробелы, т. е. из нескольких подряд идущих пробелов оставить только один.
17. Заданный текст распечатать по строкам, понимая под строкой либо очередные 60 литер, если среди них нет запятой, либо часть текста до запятой включительно.
18. Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые начинаются с буквы а;
19. Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые оканчиваются буквой w;
20. Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые начинаются и оканчиваются одной и той же буквой;
21. Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые содержат хотя бы одну букву d;
22. Программа. Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом—точка. Определить количество слов, которые содержат ровно три буквы е.
23. Значениями литерных переменных с2, с1 и с0 являются цифры. Присвоить целой переменной k число, составленное из этих цифр (например, если с2=='8', с1='0' с0='5', то k=805).
24. Присвоить литерным переменным с2, с1 и с0 соответственно левую, среднюю и правую цифры трехзначного числа k.
25. Используя только литерный ввод, т. е. процедуру read(c), где с—литерная переменная, ввести непустую последовательность цифр, перед которой может находиться знак “+” или “—” и за которой следует пробел, и, получив соответствующее целое число, присвоить его целой временной k.