Лабораторная работа №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. Какая стандартная библиотека отвечает для работы со строками?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: