Задачи по теме «Работа со строками»

1. Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке.

2. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b.

3. Дана строка. Подсчитать, сколько в ней букв r, k, t.

4. Дана строка. Определить, сколько в ней символов *,;,:.

5. Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова.

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

7. Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

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

9. Дана строка. Определить, сколько раз входит в нее группа букв abc.

10. Дана строка. Подсчитать количество букв k в последнем ее слове.

11. Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.

12. Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а.

13. Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри этих скобок.

14. Имеется строка, содержащая буквы латинского алфавита и цифры. Вывести на экран длину наибольшей последовательности цифр, идущих подряд.

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

16. Дана строка. Указать те слова, которые содержат хотя бы одну букву k.

17. Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой.

18. В строке заменить все двоеточия (:) точкой с запятой (;). Подсчитать количество замен.

19. В строке удалить символ «двоеточие» (:) и подсчитать количество удаленных символов.

20. В строке между словами вставить вместо пробела запятую и пробел.

21. Удалить часть символьной строки, заключенной в скобки (вместе со скобками).

22. Определить, сколько раз в строке встречается заданное слово.

23. В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее.

24. Дана строка. Преобразовать ее, заменив точками все двоеточия (:), встречающиеся среди первых п/2 символов, и заменив точками все восклицательные знаки, встречающиеся среди символов, стоящих после п/2 символов.

25. Строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).

26. В записке слова зашифрованы — каждое из них записано наоборот. Расшифровать сообщение.

27. Проверить, одинаковое ли число открывающихся и закрывающихся скобок в данной строке.

28. Строка, содержащая произвольный русский текст, состоит не более чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, к — 3 раза и т.д.

29. Упорядочить данный массив английских слов по алфавиту.

30. Даны две строки А и В. Составьте программу, проверяющую, можно ли из букв, входящих в А, составить В (буквы можно использовать не более одного раза и можно переставлять).

Например, А: ИНТЕГРАЛ; В: АГЕНТ — составить можно; В: ГРАФ — составить нельзя.

31. Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.

32. Двумерный массив п х т содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.

33. Результаты вступительных экзаменов представлены в виде списка из N строк, в каждой строке которого записаны фамилия студента и отметки по каждому из M экзаменов. Определить количество абитуриентов, сдавших вступительные экзамены только на «отлично».

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

35. Из заданной символьной строки выбрать те символы, которые встречаются в ней только один раз, в том порядке, в котором они встречаются в тексте.

36. В символьном массиве хранятся фамилии и инициалы учеников класса. Требуется напечатать список класса с указанием для каждого ученика количества его однофамильцев.

37. Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи должны быть только символы 0 и 1). Если число введено неверно, повторить ввод. При правильном вводе перевести число в десятичную систему счисления.

38. В заданной строке удалить все лишние пробелы.

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

40. Расстояние между двумя словами равной длины — это количество позиций, в которых различаются эти слова. В заданном предложении найти пару слов заданной длины с максимальным расстоянием.

41. Отредактировать заданное предложение, удаляя из него те слова, которые встречаются в предложении заданное число раз.

42. Напечатать те слова, которые встречаются в каждом из двух заданных предложений.

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

44. Шифрация. Один из методов шифрации называется наложением гаммы. Делается это следующим образом: берется некоторое случайное число в диапазоне от 127 до 255 — гамма, и код каждого символа строки заменяется кодом, получающимся в результате операции: новый код=старый код XOR гамма.

Написать программу, реализующую:

а) данный метод шифрации;

б) дешифрацию строки при заданной гамме. Входные данные: шифруемая строка. Выходные данные:

• гамма;

• зашифрованная строка.

45. Кодировщик. Написать программу, перекодирующую строку в кодировке KOI в строку в кодировке Windows-1251 и обратно.

46. Тэг курсива. Дан текст, в котором встречаются структуры <i> и </i>. Заменить каждое вхождение <i> на <курсив>, а каждое вхождение </i> на <конец курсива>. Замечание. В программе следует учесть, что буква i может быть как строчной, так и прописной.

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

48. Статистика. Дан текст. Напишите программу, определяющую процентное отношение строчных и прописных букв к общему числу символов в нем.

49. Статистика-2. Дан текст. Определите, каких букв (строчных или прописных) в нем больше, и преобразуйте следующим образом: если больше прописных букв, чем строчных, то все буквы преобразуются в прописные; если больше строчных, то все буквы преобразуются в строчные; если поровну и тех и других — текст остается без изменения.

50. Частота появления букв в словах. Дан текст, содержащий слова на латинице, разделенные пробелами

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

поз_средн буквы =длина_слова div 2+1

где div — операция целочисленного деления.

51. Лишние пробелы. Дана строка, состоящая из слов, разделенных пробелами. Напишите программу, удаляющую лишние пробелы. Пробел считается лишним, если он:

• стоит в начале строки;

• стоит в конце строки;

• следует за пробелом.

52. Форматированный вывод числа. С клавиатуры вводится целое число в десятичной системе счисления. Написать программу, реализующую вывод его представления с разделением на триады цифр.

Пример.

Число: 100000

Форматированный вывод: 100 000

Число:1000000

Форматированный вывод: 1 000 000

53. Оптимизатор исходного кода. Для увеличения/уменьшения значения целочисленной переменной на единицу в языках программирования можно использовать операции сложения/вычитания, а можно — операции инкремент/декремент. Известно, что операции инкремент/декремент выполняются гораздо быстрее, чем сложение/вычитание, поэтому их использование часто предпочтительнее. Дан массив строк, представляющий фрагмент текста программы на языке Паскаль. Известно, что данный фрагмент оперирует только с целочисленными переменными. В каждой строке — одна команда.

Преобразовать данный текст, заменив каждую строку вида переменная:=переменная+1; на строку вида Inc (переменная); а каждую строку вида переменная:=переменная—1; на строку вида Dec (переменная);

Пример.

Исходный текст:

Begin

ReadLn(a,b);

а:=а+1;

c:=b+l;

b:=b-l;

WriteLn('a=',a);

WriteLn('b=',b);

End.

Преобразованный текст:

Begin

ReadLn(a,b);

Inc (a);

c:=b+l;

Dec(b);

WriteLn('a=',a);

WriteLn('b=',b);

End.


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



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