|
Функции и структура программОсновные знания о функциях Для начала, спланируем и напишем программу вывода каждой строки ввода, который содержит определенный "образец" или цепочка знаков. (Своеобразную имитацию программы grep UNIX) Так, например, поиск образца, состоящий из букв "ould" в наборе строк Ah Love! could you and I with Fate conspire To grasp this sorry Scheme of Things entire, Would not we shatter it to bits - and then Re-mould it nearer to the Heart's Desire! выдал бы нам Ah Love! could you and I with Fate conspire Would not we shatter it to bits - and then Re-mould it nearer to the Heart's Desire! Эту работу можно аккуратно разбить на три части: while (есть еще строка) if (строка содержит образец) вывести строку Безусловно, мы могли бы поместить весь код такой программы в main, но лучшим выходом будет использовать эту струкруру в свою пользу, разбив каждую ее часть на отдельные функции. С малыми частями гораздо легче справиться, чем с одним большим, поскольку детали, не относящиеся к делу, можно спрятать внутри функций, и возможность нежелательных взаимодействий будет сведено на нет. Также, части могут оказаться полезными для других программ. "Еще есть строка" - это getline - функция, которую мы написали в главе 1 и "вывести строку" - это printf, которую кто создал уже для нас. Это означает, что нам осталось написать функцию, которая решала бы, строка содержит цепочку, совпадающий с образцом. Мы можем решить эту задачу путем написания функции strindex (s, t), которая возвращает положение, или индекс в цепочке s, где начинается цепочка t, или -1, если s не содержит t. Поскольку массивы в C начинаются с позиции 0, их индексы могут быть либо нулевыми, либо положительными, поэтому отрицательное число, как вот -1 - удобное для сигнализации неудачи. Если нам позже нужно будет более изящное сравнение с образцом, мы можем заменить только функцию strindex, тогда как остальные кода может остаться неизменной. (Стандартная библиотека предусматривает функцию strstr, аналогичную strindex, за исключением того, что она возвращает указатель вместо индекса) Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Продолжение статьи: ч.7 Продолжение статьи: ч.8 Продолжение статьи: ч.9 Продолжение статьи: ч.10 Продолжение статьи: ч.11 Продолжение статьи: ч.12 Продолжение статьи: ч.13 Продолжение статьи: ч.14 Продолжение статьи: ч.15 Продолжение статьи: ч.16 Продолжение статьи: ч.17 Продолжение статьи: ч.18 Продолжение статьи: ч.19 Продолжение статьи: ч.20 Продолжение статьи: ч.21 Другие статьи по теме: - Функции и структура программ- Внешние переменные и область действия - Символьные массивы - Типы, операторы и выражения - Введение в c++ |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |