Символы и строки: группа String

При выполнении заданий на обработку русских букв можно считать, что буква «ё» в исходных строковых данных отсутствует. Это связано с тем, что расположение данного символа в кодовой таблице не соответствует его расположению в русском алфавите, и поэтому учет символа «ё» во многих алгоритмах требует дополнительных действий.

Символы и их коды. Формирование строк

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$$.

Решение задачи, на языке: Паскаль

 

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

Другие задачи по программированию, для проверки своих знаний.

Комментарии:

Комментарии 3

  • Можете написать эту задачу String52 на C++

  • Дана строка символов s1,s2,…sn . Преобразовать символы s1,s2,…sn : если нет символа ‘*’, то оставить строку без изменения, иначе заменить каждый символ, встречающийся после первого вхождения символа ‘*’, на символ ‘-’.

  • Дана бесконечная строка символов s1,…sn. Известно, что первый символ отличен от восклицательного знака и что среди остальных символов есть восклицательный знак. Пусть s1,…,sn- символы данной строки, предшествующие первому восклицательному знаку (n- заранее неизвестно). Выяснить, имеется ли среди s1,…,sn пара соседствующих букв ‘но’ или ‘он’. Помогите, пожалуйста, нужен код на Паскале.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *