Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка С.doc
Скачиваний:
13
Добавлен:
12.11.2019
Размер:
1.94 Mб
Скачать

7.4.2 Задачи для решения на тему «строки»

Вариант 1. Проверить, правильно ли в текст входят круглые скобки.

Вариант 2. Удалить из текста все буквы b.

Вариант 3. Удалить из текста все буквы k идущие за буквой n.

Вариант 4. Напечатать текст, удалив из него лишние пробелы, т.е. чтобы пробелы встречались по одному.

Вариант 5. Подсчитать количество слов в тексте, начинающихся и заканчивающихся с одной и той же буквы.

Вариант 6. Подсчитать число слов в тексте, содержащих букву b.

Вариант 7. Перепечатать текст, подчеркивая в нем заглавные буквы (строкой ниже).

Вариант 8. Удалить из слова повторяющиеся буквы.

Вариант 9. Если в заданный текст входит каждая их букв слова key, напечатать yes, иначе no.

Вариант 10. Напечатать буквы, которые идут в тексте непосредственно за буквой а.

Вариант 11. Удалить из текста все пары букв оо.

Вариант 12. Подсчитать число слов в тексте, оканчивающихся буквой w.

Вариант 13. Проверить, является ли данное слово перевертышем.

Вариант 14. Подсчитать количество слов в тексте содержащих ровно три буквы е.

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

Вариант 16. Если слово нечетной длины, удалить из него среднюю букву.

Вариант 17. Заменить в тексте строчные буквы прописными, а прописные строчными.

Вариант 18. Найти в тексте самое большое число.

Вариант 19. Подсчитать частоты вхождения букв в текст.

Вариант 20. Вывести на экран, самое длинное слово в тексте.

8.1 Переименование типов (typedef)

Для того чтобы сделать программу более ясной, можно задать типу новое имя с помощью ключевого слова typedef:

typedef тип новое_имя [ размерность ];

В данном случае квадратные скобки являются элементом синтаксиса. Размерность может отсутствовать. Примеры:

typedef unsigned int UINT;

typedef char Msg[100];

typedef struct{

char fio[30];

int date, code;

double salary;} Worker;

Введенное таким образом имя можно использовать таким же образом, как и имена стандартных типов:

UINT i, j; // две переменных типа unsigned int

Msg str[10]; // массив из 10 строк по 100 символов

Worker staff[100]; // массив из 100 структур

8.2 Перечисления (enum)

При написании программ часто возникает потребность определить несколько именованных констант, для которых требуется, чтобы все они имели различные значения (при этом конкретные значения могут быть не важны). Для этого удобно воспользоваться перечисляемым типом данных, все возможные значения которого задаются списком целочисленных констант. Формат:

enum [ имя_типа ] { список_констант };

Имя типа задается в том случае, если в программе требуется определять переменные этого типа. Компилятор обеспечивает, чтобы эти переменные принимали значения только из списка констант. Константы должны быть целочисленными и могут инициализироваться обычным образом. При отсутствии инициализатора первая константа обнуляется, а каждой следующей присваивается на единицу большее значение, чем предыдущей:

enum Err {ERR_READ, ERR_WRITE, ERR_CONVERT};

Err error;

...

switch (error){

case ERR_READ: /* операторы */ break;

case ERR_WRITE: /* операторы */ break;

case ERR_CONVERT: /* операторы */ break;

}

Константам ERR_READ, ERRJJRITE, ERR_CONVERT присваиваются значения 0, 1 и 2 соответственно.

Другой пример:

enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};

Константам three и four присваиваются значения 3 и 4, константе eleven - 11.