Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Лабораторная работа №5. Строки
Цель работы: Приобретение навыков программирования при решении задач обработки текстов.
Отчет на лабораторную работу должен содержать: - задание по варианту; - листинг программы, записанного по правилам языка Си/Си++ (все значения для вычисления ввести с клавиатуры.); - составить блок-схему данного алгоритма; - скриншот результата программы.
5.1 Варианты заданий 1. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L кратна 2, то удаляются все числа, которые делятся на 2. 2. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L четная, то удаляются 2 первых и 2 последних символа. 3. Выяснить, имеются ли среди символов S1...Sn некоторой строки все буквы, входящие в слово DOS. 4. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L нечетная, то удаляется символ, стоящий посередине строки. 5. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Составить программу для замены в строке длиной К символов каждого второго символа! на $. 6. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Составить программу для замены в строке длиной К символов всех пробелов на символ $. 7. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L> 10, то удаляются все цифры. 8. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L кратна 3, то удаляются все числа, делящиеся на 3. 9. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L кратна 5, то подсчитывается количество скобок всех видов. 10. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L кратна 4, то первая часть строки меняется местами со второй. 11. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L=10, то удаляются все A...Z. 12. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L > 15, то удаляются все a…z. 13. В строке символов поменять местами символы на четных и нечетных позициях. 14. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L, и, если длина L > 6, то выделяется подстрока в { } скобках. 15. Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши " Ввод". Программа должна определить длину введенной строки L и, если длина
5.2 Методические указания к выполнению лабораторной работы Строка – это массив, элементы которого являются символы. Основные действия над строками и символами реализуются с помощью описываемых ниже стандартных функций: - size_t strlen (const char *s) — возвращает длину в байтах строки s, не включая '\0'. - char * strcat (char *dest, const char *src) — присоединяет строку src в конец строки dest. - char * strcpy (char *dest, const char *src) — копирует строку src в место памяти, на которое указывает dest. - char * strncat (char *dest, const char *src, size_t maxlen) — присоединяет maxlen символов строки src в конец строки dest. - char * strncpy (char *dest, const char *src, size_t maxlen) — копирует maxlen первых символов строки src в место памяти, на которое указывает dest. - char * strstr (char *sl, const char *s2) — отыскивает первое вхождение строки s2 в строку si. - int strcmp (const char *sl, const char *s2) — сравнивает две строки в лексикографическом порядке с учетом различия прописных и строчных букв; возвращает значение меньше нуля, если si располагается в упорядоченном по алфавиту порядке раньше, чем s2, и больше нуля, если наоборот. Функция возвращает нуль, если строки идентичны. - char * stricmp (const char *sl, const char *s2) — аналогична strcmp, только не различает прописные и строчные буквы. Пример В программе значение строки формируется с клавиатуры, а затем введенная строка распечатывается в обратном порядке. #include < stdio.h> #include < string.h> #include < conio.h>
void main(void) { char s[100]; // обьявление символьного массива int i, k; clrscr(); puts(" Введите исходную строку"); gets(s); k=strlen(s); puts("... РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ......\n"); for (i=k; i> =0; i--) printf(" %c", s[i]); /* вывод элементов массива в обратном порядке */ printf(" \n Press any key..."); getch(); }
Контрольные вопросы: 1. Что означает нуль-терминатор? 2. Какими переменными инициализируются строки? 3. Как инициализируются строки? 4. Как обратиться к элементу строки? 5. Как происходит подключение стандартных библиотек. 6. Что такое строка? 7. Чем отличие стоки от одномерных массивов? 8. Какая стандартная библиотека отвечает для работы со строками?
|