Глава 4. Функции
95
Пример программы с функцией
substr()
представлен в листинге 4.2.
Листинг 4.2
/* Created by SharpDevelop.
* User: user
* Date: 15.11.2012
* Time: 14:10
*
* To change this template use Tools | Options | Coding |
* Edit Standard Headers. */
using System;
namespace app10_substr
{
class Program
{
static string substr(string s, int i, int count)
{
int j=0;
string r = s.Remove(j, i-1);
int par1=count;
int par2=(s.Length-i)-(count-1);
string r1=r.Remove(par1,par2);
return(r1);
}
public static void Main(string[] args)
{
string s="";
while(true)
{
Console.WriteLine("Введите строку >");
s=Console.ReadLine();
if(s == null)
break;
Console.WriteLine("Введите позицию начала " +
"выделения >");
96
Часть I. Базовые сведения о программировании на языке C#
string r=Console.ReadLine();
int i=System.Convert.ToInt32(r);
Console.WriteLine("Введите количество " +
"символов выделения >");
r=Console.ReadLine();
int j=System.Convert.ToInt32(r);
Console.WriteLine("Выделить c символа {0} символов {1}
\nПодстрока: {2}",i,j,substr(s,i,j));
Console.WriteLine("Для продолжения нажмите " +
"любую клавишу > ");
// Console.Read();
} // while
}
}
}
Эта функция с именем
substr()
возвращает строку (тип возвращаемого
значения —
string
), а на свой вход получает строку символов
s
и два
числовых параметра: номер позиции в строке, с которой надо выделить
подстроку, и количество выделяемых символов (
count
). Для выделения
подстроки используется имеющаяся в системе функция
Remove()
, кото-
рая делает то, что мы хотим заставить делать
substr()
, но вместо выде-
ления удаляет символы. Надо учесть, что счет символов в строке начи-
нается с нуля: первый символ находится в позиции 0, второй — в пози-
ции 1 и т. д. Сначала удаляются все символы до заданной в параметре
позиции, а потом все символы после заданного количества. В остатке и
получим требуемую подстроку. Далее созданная функция помещена в
Main()
для демонстрации ее работы. Чтобы можно было проверять на
разных строках, создан цикл из оператора
while
, в теле которого и про-
изводятся все операции. В заголовке
while
стоит значение
true
. Это
означает, что
while
создает бесконечный цикл, выход из которого надо
делать в его теле. Выход происходит уже частично знакомым способом:
когда при очередном вводе строки нажимается комбинация клавиш
+, результат ввода будет
null
. На это значение и проверяется
переменная, в которую должен попадать ввод. Проверка — с помощью
оператора
if()
. Если условие в
if
выполняется, то идет передача управ-
ления на выход из цикла
while
. Так работает оператор
break
, который
находится в теле
if
. Это новый для нас оператор. К этому оператору
имеется "пара" — оператор
continue
. Он, в отличие от
break
, передает
Do'stlaringiz bilan baham: |