Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Функции и структура программ


Основные знания о функциях

Для начала, спланируем и напишем программу вывода каждой строки ввода, который содержит определенный "образец" или цепочка знаков. (Своеобразную имитацию программы 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, за исключением того, что она возвращает указатель вместо индекса)

Другие статьи по теме:

- Функции и структура программ
- Внешние переменные и область действия
- Символьные массивы
- Типы, операторы и выражения
- Введение в c++


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами