Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к ЛР 2015 v5.doc
Скачиваний:
90
Добавлен:
09.03.2016
Размер:
1.78 Mб
Скачать

Лабораторная работа №6. Строки

Цель работы– знакомство с организацией строк в языке Си, изучение библиотечных функций обработки строк и символов.

Постановка задачи

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

Варианты заданий

  1. Дана строка символов. Удалить из нее все кратные рядом стоящие одинаковые символы, оставив по одному (АААВВССАВС)

  2. Дана строка символов до точки. Подсчитать, сколько слов она содержит.

  1. Дана строка символов, содержащая предложение, заканчивающееся точкой. Найти в строке самое длинное слово и вывести его на экран.

  2. Дана строка, содержащая фамилию, имя и отчество человека. Преобразовать строку так, чтобы сначала указывались инициалы с точками, а затем фамилия.

  1. Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.

  2. Дана строка символов до точки. Выделить в ней все русские буквы, сделав их заглавными.

  1. Дана строка символов до точки. Определить, является ли она палиндромом. (Палиндром слева направо и справа налево читается одинаково, например "Леша на полке клопа нашел") Пробелы и знаки препинания, а также регистр букв не учитываются.

  2. Дана строка символов. Подсчитать, сколько раз в ней встречается подслово «АВВА».

  1. Строка содержит запись натурального десятичного числа. Определить, можно ли представить это число в формате unsignedshortint.

  2. Дана строка символов до точки. В каждом слове поменять местами первый и последний символы.

  1. Дана строка, содержащая дату в формате “дд.мм.гггг”. Проверить корректность этой даты и сформировать строку, содержащую следующую по порядку дату.

  2. Дана строка символов до точки. Записать новую строку из слов заданной, содержащих букву «М».

  1. Дана строка символов до точки. Записать слова этой строки в обратном порядке (мама мыла раму раму мыла мама).

  2. Дана символьная строка. Зашифровать в ней все латинские буквы с помощью циклической подстановки ABC…YZA

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

  2. Дана строка символов до точки. Заменить в строке первую букву каждого слова со строчной на заглавную.

  1. Даны две строки. Составить третью строку из слов, имеющихся в обеих данных строках.

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

  1. Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.

  2. Даны две строки, каждая содержит десятичную запись натурального числа. Получить строку, содержащую сумму этих чисел.

  1. Дана строка символов до точки. Оставить в ней только слова, начинающиеся на буквы «A», «D», «K», «P».

  2. Дана строка символов до точки. Подсчитать, сколько каких знаков препинания она содержит.

  1. Дана символьная строка. Оставить в ней только слова, содержащие хотя бы одну букву «А».

  2. Дана строка символов до точки. Изменить ее таким образом, чтобы все символы отделялись друг от друга одним пробелом.

  1. Дана строка символов. Поменять местами первое и последнее слова.

  2. Дана строка символов. Удалить из нее все гласные буквы.

  1. Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка.

  2. Строка содержит запись арифметического выражения на языке Си. В выражении могут использоваться операции «+», «-», «*», «%», функции sin(),cos(),tan(). Получить строку, содержащую запись этого выражения на языке Паскаль.

  1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».

  2. Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы. Если нет – исправить.

  1. Дана символьная строка. Удалить из нее все символы, не являющиеся буквами.

  2. Дана строка символов. Выделить и вывести слова, ограниченные пробелом или знаками препинания: запятая, точка, двоеточие, точка с запятой.

  1. Дана строка символов. Поменять местами N первых и N последних символов заданной строки.

  2. Дана строка символов. Найти в строке самое длинное слово и вывести его на экран.

  1. Дана строка символов. Во всех словах с четным номером поменять местами первый и последний символы.

  2. Строка содержит запись натурального числа в n-ричной системе счисления (nзадается пользователем). Получить строку, содержащую десятичную запись этого числа.

  1. Дана строка символов. Найти длину каждого слова в заданной строке.

  2. Дано натуральное десятичное число. Получить строку, содержащую запись этого числа в троичной системе счисления.

  1. Дана строка символов. Инвертировать все слова в этой строке, последовательность слов сохранить.

  2. Дана строка, состоящая из цифр. Определить минимальное основание системы счисления, которой может принадлежать число, записанное в этой строке.

Контрольные вопросы

  1. Способы организации строк.

  2. Что такое Си-строка? Чем она отличается от массива символов?

  3. Что такое нуль-терминатор?

  4. Чем отличается описание char *st=”Ok” отchar st[]=”Ok”?

  5. Как инициализировать строку?

  6. Чем отличается ввод строки с помощью функции scanf() от ввода с помощью функцииgets()?

  7. Чем отличается ввод строки с помощью функции gets() от ввода с помощью функцииfgets()?

  8. Сколько символов выводит на экран функция puts()?

  9. Каковы особенности вывода строк на экран с помощью функции printf()?

  10. Можно ли использовать операцию присваивания для задания значения строки?

  11. Как изменить строку?

  12. Что такое конкатенация строк?

  13. Как преобразовать строку в число?

  14. Как преобразовать число в строку?

  15. Объясните принципы работы функции strtok().