- •Основы программирования на языке Си Методические указания к лабораторным работам
- •Предисловие
- •Лабораторная работа № 1. Структура программы, ввод/вывод
- •Лабораторная работа № 2. Программирование ветвлений
- •Лабораторная работа № 3. Программирование циклов
- •Лабораторная работа № 4. Указатели
- •Лабораторная работа № 5. Одномерные массивы
- •Лабораторная работа № 6. Двумерные массивы
- •Лабораторная работа № 7. Функции
- •Лабораторная работа №8. Строки
- •Библиографический список
- •Приложение Образец оформления отчета по лабораторной работе
- •Лабораторная работа № 3 «циклы»
- •Основы программирования на языке Си
- •190005, С.-Петербург, 1-я Красноармейская ул., д.1
Лабораторная работа №8. Строки
Цель работы – знакомство с организацией строк в языке Си, изучение библиотечных функций обработки строк и символов.
Постановка задачи
Написать две программы согласно индивидуальному варианту. В случае, когда указано, что задается строка до точки, обрезать строку, отбросив все символы после точки, если точки нет, то считать, что строка ограничена точкой. Использовать функции библиотеки string.h.
Варианты заданий
-
Дана строка символов. Удалить из нее все кратные рядом стоящие одинаковые символы, оставив по одному (АААВВССАВС)
-
Дана строка символов до точки. Подсчитать, сколько слов она содержит.
-
Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «а».
-
Дана строка символов до точки. Подсчитать в ней число латинских букв.
-
Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.
-
Дана строка символов до точки. Выделить в ней все русские буквы, сделав их заглавными.
-
Дана строка символов до точки. Определить, является ли она палиндромом. (Палиндром слева направо и справа налево читается одинаково, например "Леша на полке клопа нашел.") Пробелы и знаки препинания, а также регистр букв не учитываются.
-
Дана строка символов. Подсчитать, сколько раз в ней встречается подслово «АВВА».
-
Дана строка символов (введена с клавиатуры), состоящая из цифр от 0 до 9. Составить новую строку из букв от А (соответствует цифре 0) до J (соответствует цифре 9).
-
Дана строка символов. Выделить в ней цветом все символы, не являющиеся буквами.
-
Дана строка символов до точки. Определить, входят ли в состав заданной строки цифры. Сформировать из них новую строку.
-
Дана строка символов до точки. Вывести ее на экран задом наперед без пробелов.
-
Дана строка символов до точки. Записать слова этой строки в обратном порядке (мама мыла раму раму мыла мама).
-
Дана символьная строка. Зашифровать в ней все латинские буквы с помощью циклической подстановки ABC…YZA
-
Дана строка символов. Определить, является ли она правильным скобочным выражением.
-
Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «е».
-
Даны две строки. Составить третью строку из слов, имеющихся в обеих данных строках.
-
Дана строка символов до точки. Записать новую строку из слов заданной, содержащих букву «М».
-
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
-
Дана строка символов. Группы символов между группами пробелов считаются словами. Определить число вхождений в последовательность слов группы букв «abc».
-
Дана строка символов до точки. Оставить в ней только слова, начинающиеся на буквы «A», «D», «K», «P».
-
Дана символьная строка. Выделить в ней цветом все прописные буквы.
-
Дана символьная строка. Оставить в ней только слова, содержащие хотя бы одну букву «А».
-
Дана строка символов до точки. Изменить ее таким образом, чтобы все символы отделялись друг от друга одним пробелом.
-
Дана строка символов, состоящая из букв и цифр. Найти количество букв в данной строке.
-
Дана символьная строка. Заменить в ней все буквы «О» на «Ъ», а буквы «Е» – на случайные символы.
-
Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка.
-
Дана строка символов. Удалить из нее все гласные буквы.
-
Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».
-
Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы. Если нет – исправить.
-
Дана символьная строка. Удалить из нее все символы, не являющиеся буквами.
-
Дана строка символов до точки. Подсчитать, сколько каких знаков препинания она содержит.
-
Дана строка символов. Поменять местами N первых и N последних символов заданной строки.
-
Дана строка символов. Выделить и вывести слова, ограниченные пробелом или знаками препинания: запятая, точка, двоеточие, точка с запятой.
-
Дана строка символов до точки. Инвертировать каждое слово в заданной строке.
-
Дана строка символов. Найти в строке самое длинное слово и вывести его на экран.
-
Дана строка символов. Найти длину каждого слова в заданной строке.
-
Дана строка символов до точки. Удалить из нее все сочетания “ас”.
-
Дана строка символов. Инвертировать все слова в этой строке, последовательность слов сохранить.
-
Дана строка символов до точки. Удалить из нее все повторные вхождения букв.
-
Дана строка символов. Во всех словах с четным номером поменять местами первый и последний символы.
-
Дана строка символов. Заменить все пробелы в заданной строке точками и запятыми поочередно.
-
Дана символьная строка. Поменять местами первый символ ‘d’ и последний символ ‘f’ в заданной строке.
-
Дана строка, состоящая из букв и цифр. Преобразовать ее так, чтобы сначала шли буквы, а потом – все цифры исходной строки.
-
Дана строка символов до точки. Заменить в строке все слоги “we” на специальный символ “&”.
-
Дана строка символов. Поменять местами первое и последнее слова.
-
Дана строка символов до точки. Удалить из строки первые буквы каждого слова.
-
Дана строка, состоящая из букв от А до J. Составить новую строку из цифр от 0 (соответствует цифре А) до 9 (соответствует цифре J).
-
Дана строка символов до точки. Заменить в строке первую букву каждого слова со строчной на заглавную.
-
Дана строка, состоящая из букв и цифр. Проверить, является ли данная строка представлением числа в шестнадцатеричной системе счисления.
-
*
-
В БГТУ принято, что старшая цифра номера студенческой группы означает номер кафедры, средняя – последнюю цифру года поступления, младшая – порядковый номер группы на курсе. Продолжительность обучения не более 6 лет. Дан номер группы студента и текущий год. Определить, к какой кафедре прикреплен студент, в каком году он поступил и на каком сейчас курсе.
-
Дана строка символов до точки. Определить, сколько каких латинских букв в ней содержится.
Контрольные вопросы
-
Способы организации строк.
-
Что такое Си-строка? Чем она отличается от массива символов?
-
Что такое нуль-терминатор?
-
Чем отличается описание char *st от char st[N], где N – некоторая константа?
-
Как инициализировать строку?
-
Чем отличается ввод строки с помощью функции scanf() от ввода с помощью функции gets()?
-
Можно ли использовать операцию присваивания для задания значения строки?
-
Как изменить строку?
-
Что такое конкатенация строк?
-
Какие функции для работы со строками Вы можете назвать?