При выполнении заданий на обработку русских букв можно считать, что буква «ё» в исходных строковых данных отсутствует. Это связано с тем, что расположение данного символа в кодовой таблице не соответствует его расположению в русском алфавите, и поэтому учет символа «ё» во многих алгоритмах требует дополнительных действий.
Символы и их коды. Формирование строк
String1. Дан символ $$C$$. Вывести его код (то есть номер в кодовой таблице).
Решение задачи, на языке: Паскаль, С++
String2. Дано целое число $$N (32 \le $$N$$ \le 126)$$. Вывести символ с кодом, равным $$N$$.
Решение задачи, на языке: Паскаль
String3. Дан символ $$C$$. Вывести два символа, первый из которых предшествует символу $$C$$ в кодовой таблице, а второй следует за символом $$C$$.
Решение задачи, на языке: Паскаль
String4. Дано целое число $$N (1 \le $$N$$ \le 26)$$. Вывести $$N$$ первых прописных (то есть заглавных) букв латинского алфавита.
Решение задачи, на языке: Паскаль, С++
String5. Дано целое число $$N (1 \le $$N$$ \le 26)$$. Вывести $$N$$ последних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z»).
Решение задачи, на языке: Паскаль
String6. Дан символ $$C$$, изображающий цифру или букву (латинскую или русскую). Если $$C$$ изображает цифру, то вывести строку «digit», если латинскую букву — вывести строку «lat», если русскую — вывести строку «rus».
Решение задачи, на языке: Паскаль
String7. Дана непустая строка. Вывести коды ее первого и последнего символа.
Решение задачи, на языке: Паскаль
String8. Дано целое число $$N (> 0)$$ и символ $$C$$. Вывести строку длины $$N$$, которая состоит из символов $$C$$.
Решение задачи, на языке: Паскаль
String9. Дано четное число $$N (> 0)$$ и символы $$C_1$$ и $$C_2$$. Вывести строку длины $$N$$, которая состоит из чередующихся символов $$C_1$$ и $$C_2$$, начиная с $$C_1$$.
Решение задачи, на языке: Паскаль, С++
String10. Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.
Решение задачи, на языке: Паскаль
String11. Дана непустая строка $$S$$. Вывести строку, содержащую символы строки $$S$$, между которыми вставлено по одному пробелу.
Решение задачи, на языке: Паскаль
String12. Дана непустая строка $$S$$ и целое число $$N (> 0)$$. Вывести строку, содержащую символы строки $$S$$, между которыми вставлено по $$N$$ символов «*» (звездочка).
Решение задачи, на языке: Паскаль
Посимвольный анализ и преобразование строк. Строки и числа
String13. Дана строка. Подсчитать количество содержащихся в ней цифр.
Решение задачи, на языке: Паскаль
String14. Дана строка. Подсчитать количество содержащихся в ней прописных латинских букв.
Решение задачи, на языке: Паскаль
String15. Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв.
Решение задачи, на языке: Паскаль
String16. Дана строка. Преобразовать в ней все прописные латинские буквы в строчные.
Решение задачи, на языке: Паскаль
String17. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные.
Решение задачи, на языке: Паскаль
String18. Дана строка. Преобразовать в ней все строчные буквы (как латинские, так и русские) в прописные, а прописные — в строчные.
Решение задачи, на языке: Паскаль, С++
String19. Дана строка. Если она представляет собой запись целого числа, то вывести $$1$$, если вещественного (с дробной частью) — вывести $$2$$; если строку нельзя преобразовать в число, то вывести $$0$$. Считать, что дробная часть вещественного числа отделяется от его целой части десятичной точкой «.».
Решение задачи, на языке: Паскаль
String20. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке слева направо).
Решение задачи, на языке: Паскаль
String21. Дано целое положительное число. Вывести символы, изображающие цифры этого числа (в порядке справа налево).
Решение задачи, на языке: Паскаль
String22. Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.
Решение задачи, на языке: Паскаль
String23. Дана строка, изображающая арифметическое выражение вида «<цифра>±<цифра>±…±<цифра>», где на месте знака операции «±» находится символ «+» или «–» (например, «4+7–2–8»). Вывести значение данного выражения (целое число).
Решение задачи, на языке: Паскаль
String24. Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись этого же числа.
Решение задачи, на языке: Паскаль
String25. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа.
Решение задачи, на языке: Паскаль, C++
Обработка строк с помощью стандартных функций. Поиск и замена
В заданиях, связанных с поиском и заменой подстрок, можно считать, что исходная строка не содержит перекрывающихся вхождений требуемых подстрок. В заданиях String32, String35 и String38, кроме этого, можно также считать, что удаление (в String32 и String35) или замена (в String38) любого вхождения подстроки не приведет к появлению в строке новых вхождений данной подстроки.
String26. Дано целое число $$N (> 0)$$ и строка $$S$$. Преобразовать строку $$S$$ в строку длины $$N$$ следующим образом: если длина строки $$S$$ больше $$N$$, то отбросить первые символы, если длина строки $$S$$ меньше $$N$$, то в ее начало добавить символы «.» (точка).
Решение задачи, на языке: Паскаль
String27. Даны целые положительные числа $$N_1$$ и $$N_2$$ и строки $$S_1$$ и $$S_2$$. Получить из этих строк новую строку, содержащую первые $$N_1$$ символов строки $$S_1$$ и последние $$N_2$$ символов строки $$S_2$$ (в указанном порядке).
Решение задачи, на языке: Паскаль, С++
String28. Дан символ $$C$$ и строка $$S$$. Удвоить каждое вхождение символа $$C$$ в строку $$S$$.
Решение задачи, на языке: Паскаль
String29. Дан символ $$C$$ и строки $$S$$, $$S_0$$. Перед каждым вхождением символа $$C$$ в строку $$S$$ вставить строку $$S_0$$.
Решение задачи, на языке: Паскаль
String30. Дан символ $$C$$ и строки $$S$$, $$S_0$$. После каждого вхождения символа $$C$$ в строку $$S$$ вставить строку $$S_0$$.
Решение задачи, на языке: Паскаль
String31. Даны строки $$S$$ и $$S_0$$. Проверить, содержится ли строка $$S_0$$ в строке $$S$$. Если содержится, то вывести True, если не содержится, то вывести False.
Решение задачи, на языке: Паскаль
String32. Даны строки $$S$$ и $$S_0$$. Найти количество вхождений строки $$S_0$$ в строку $$S$$.
Решение задачи, на языке: Паскаль
String33. Даны строки $$S$$ и $$S_0$$. Удалить из строки $$S$$ первую подстроку, совпадающую с $$S_0$$. Если совпадающих подстрок нет, то вывести строку $$S$$ без изменений.
Решение задачи, на языке: Паскаль
String34. Даны строки $$S$$ и $$S_0$$. Удалить из строки $$S$$ последнюю подстроку, совпадающую с $$S_0$$. Если совпадающих подстрок нет, то вывести строку $$S$$ без изменений.
Решение задачи, на языке: Паскаль
String35. Даны строки $$S$$ и $$S_0$$. Удалить из строки $$S$$ все подстроки, совпадающие с $$S_0$$. Если совпадающих подстрок нет, то вывести строку $$S$$ без изменений.
Решение задачи, на языке: Паскаль
String36. Даны строки $$S$$, $$S_1$$ и $$S_2$$. Заменить в строке $$S$$ первое вхождение строки $$S_1$$ на строку $$S_2$$.
Решение задачи, на языке: Паскаль
String37. Даны строки $$S$$, $$S_1$$ и $$S_2$$. Заменить в строке $$S$$ последнее вхождение строки $$S_1$$ на строку $$S_2$$.
Решение задачи, на языке: Паскаль
String38. Даны строки $$S$$, $$S_1$$ и $$S_2$$. Заменить в строке $$S$$ все вхождения строки $$S_1$$ на строку $$S_2$$.
Решение задачи, на языке: Паскаль
String39. Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.
Решение задачи, на языке: Паскаль
String40. Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и последним пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.
Решение задачи, на языке: Паскаль
Анализ и преобразование слов в строке
Во всех заданиях данного пункта предполагается, что исходные строки являются непустыми и не содержат начальных и конечных пробелов.
String41. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти количество слов в строке.
Решение задачи, на языке: Паскаль, С++
String42. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые начинаются и заканчиваются одной и той же буквой.
Решение задачи, на языке: Паскаль
String43. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат хотя бы одну букву «А».
Решение задачи, на языке: Паскаль
String44. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат ровно три буквы «А».
Решение задачи, на языке: Паскаль
String45. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого слова.
Решение задачи, на языке: Паскаль
String46. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.
Решение задачи, на языке: Паскаль
String47. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним символом «.» (точка). В конце строки точку не ставить.
Решение задачи, на языке: Паскаль
String48. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все последующие вхождения его первой буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «МИНИ.У.». Количество пробелов между словами не изменять.
Решение задачи, на языке: Паскаль
String49. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Преобразовать каждое слово в строке, заменив в нем все предыдущие вхождения его последней буквы на символ «.» (точка). Например, слово «МИНИМУМ» надо преобразовать в «.ИНИ.УМ». Количество пробелов между словами не изменять.
Решение задачи, на языке: Паскаль
String50. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в обратном порядке.
Решение задачи, на языке: Паскаль
String51. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в алфавитном порядке.
Решение задачи, на языке: Паскаль, С++
String52. Дана строка-предложение на русском языке. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы. Словом считать набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки. Слова, не начинающиеся с буквы, не изменять.
Решение задачи, на языке: Паскаль
String53. Дана строка-предложение на русском языке. Подсчитать количество содержащихся в строке знаков препинания.
Решение задачи, на языке: Паскаль
String54. Дана строка-предложение на русском языке. Подсчитать количество содержащихся в строке гласных букв.
Решение задачи, на языке: Паскаль
String55. Дана строка-предложение на русском языке. Вывести самое длинное слово в предложении. Если таких слов несколько, то вывести первое из них. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки.
Решение задачи, на языке: Паскаль, C++
String56. Дана строка-предложение на русском языке. Вывести самое короткое слово в предложении. Если таких слов несколько, то вывести последнее из них. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки.
Решение задачи, на языке: Паскаль
String57. Дана строка-предложение с избыточными пробелами между словами. Преобразовать ее так, чтобы между словами был ровно один пробел.
Решение задачи, на языке: Паскаль
Дополнительные задания на обработку строк
String58. Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно имя и расширение. Выделить из этой строки имя файла (без расширения).
Решение задачи, на языке: Паскаль
String59. Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно имя и расширение. Выделить из этой строки расширение файла (без предшествующей точки).
Решение задачи, на языке: Паскаль
String60. Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога (без символов «\»). Если файл содержится в корневом каталоге, то вывести символ «\».
Решение задачи, на языке: Паскаль
String61. Дана строка, содержащая полное имя файла. Выделить из этой строки название последнего каталога (без символов «\»). Если файл содержится в корневом каталоге, то вывести символ «\».
Решение задачи, на языке: Паскаль
String62. Дана строка-предложение на русском языке. Зашифровать ее, выполнив циклическую замену каждой буквы на следующую за ней в алфавите и сохранив при этом регистр букв («А» перейдет в «Б», «а» — в «б», «Б» — в «В», «я» — в «а» и т. д.). Букву «ё» в алфавите не учитывать («е» должна переходить в «ж»). Знаки препинания и пробелы не изменять.
Решение задачи, на языке: Паскаль
String63. Дана строка-предложение на русском языке и число $$K (0 < K < 10)$$. Зашифровать строку, выполнив циклическую замену каждой буквы на букву того же регистра, расположенную в алфавите на $$K$$-й позиции после шифруемой буквы (например, для $$K = 2$$ «А» перейдет в «В», «а» — в «в», «Б» — в «Г», «я» — в «б» и т. д.). Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять.
Решение задачи, на языке: Паскаль
String64. Дано зашифрованное предложение на русском языке (способ шифрования описан в задании String63) и кодовое смещение $$K (0 < K < 10)$$. Расшифровать предложение.
Решение задачи, на языке: Паскаль
String65. Дано зашифрованное предложение на русском языке (способ шифрования описан в задании String63) и его расшифрованный первый символ $$C$$. Найти кодовое смещение $$K$$ и расшифровать предложение.
Решение задачи, на языке: Паскаль
String66. Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном порядке, все символы, расположенные на нечетных позициях (например, строка «Программа» превратится в «ргамамроП»).
Решение задачи, на языке: Паскаль
String67. Дано предложение, зашифрованное по правилу, описанному в задании String66. Расшифровать это предложение.
Решение задачи, на языке: Паскаль
String68. Дана строка, содержащая цифры и строчные латинские буквы. Если буквы в строке упорядочены по алфавиту, то вывести $$0$$; в противном случае вывести номер первого символа строки, нарушающего алфавитный порядок.
Решение задачи, на языке: Паскаль
String69. Дана строка, содержащая латинские буквы и круглые скобки. Если скобки расставлены правильно (то есть каждой открывающей соответствует одна закрывающая), то вывести число $$0$$. В противном случае вывести или номер позиции, в которой расположена первая ошибочная закрывающая скобка, или, если закрывающих скобок не хватает, число $$-1$$.
Решение задачи, на языке: Паскаль
String70. Дана строка, содержащая латинские буквы и скобки трех видов: «()», «[]», «{}». Если скобки расставлены правильно (то есть каждой открывающей соответствует закрывающая скобка того же вида), то вывести число $$0$$. В противном случае вывести или номер позиции, в которой расположена первая ошибочная скобка, или, если закрывающих скобок не хватает, число $$-1$$.
Решение задачи, на языке: Паскаль
Если вы хотите выложить решение для задач, но нет решения на нужном языке, или вообще к задаче нет решений. Можете разместить его в виде комментария к данной статье.
Другие задачи по программированию, для проверки своих знаний.
Можете написать эту задачу String52 на C++
Дана строка символов s1,s2,…sn . Преобразовать символы s1,s2,…sn : если нет символа ‘*’, то оставить строку без изменения, иначе заменить каждый символ, встречающийся после первого вхождения символа ‘*’, на символ ‘-’.
Дана бесконечная строка символов s1,…sn. Известно, что первый символ отличен от восклицательного знака и что среди остальных символов есть восклицательный знак. Пусть s1,…,sn- символы данной строки, предшествующие первому восклицательному знаку (n- заранее неизвестно). Выяснить, имеется ли среди s1,…,sn пара соседствующих букв ‘но’ или ‘он’. Помогите, пожалуйста, нужен код на Паскале.