Пример 1. Реализовать функцию MyPos, которая ищет подстроку в строке.
Листинг 4.2. Поиск подстроки
function MyPos (s1: string; s: string): byte;
begin
i:=-1; Ok:=false;
while (i<Length(s)-Length(s1)) and not Ok do
begin
Inc(i); Ok:=s1=Copy(s,i,Length(s1));
end;
if Ok then Result:=i else Result:=0;
end;
Пример 2. Дана строка символов. Вывести символы между первым и вторым «-».
Листинг 4.3. Строка символов
var
i: integer;
s_Old,s_New: string;
Ok: boolean;
begin
Write('S='); Readln(s_Old);
i:=0; Ok:=false;
while (i<Length(s_Old)) and not Ok do
begin
Inc(i); Ok:=s_Old[i]='-';
end;
s_New:=''; Ok:=false;
while (i<Length(s_Old)) and not Ok do
begin
Inc(i); Ok:=s_Old[i]='-';
if not Ok then s_New:=s_New+s_Old[i];
end;
Write(s_New);
Readln;
end.
Пример 3. Проверить упорядочены ли символы в строке.
Листинг 4.4. Упорядоченность символов
var
i : integer;
s : string;
Ok: boolean;
begin
Write('S='); Readln(s);
i:=1; Ok:=true;
while (i<Length(s)) and Ok do
begin
Inc(i);
Ok:=s[i-1]<s[i];
end;
if Ok then Write('TRUE') else Write('FALSE');
Readln;
end.
Пример 3. Вычислить число символов “a” и “o” в строке.
Листинг 4.5. Число символов в строке
const
SetCh=['a','o'];
var
i,Count : integer;
s : string;
begin
Write('S='); Readln(s);
Count:=0;
for i:=1 to Length(s) do
if s[i] in SetCh then Inc(Count);
Write('Count=',Count);
Readln;
end.
4.1 Одномерные массивы
4.2 Двумерные массивы
4.3 Строки. Основы техники строк
4.4 Стандартные функции для обработки строк
4.5 Инициализация массивов
4.6 Массивы строк
Массивом называется коллекция переменных одного типа, обращение к которым осуществляется по общему имени. Массивы могут быть одномерными или многомерными, хотя одномерные используются значительно чаще. Для современного программирования массивы являются фундаментальными объектами.
Возможно, чаше других вы будете сталкиваться с символьными массивами, потому что они используются для хранения символьных строк. Язык С++ не имеет встроенного типа строковых данных. Строки реализуются как массивы символов. Такой подход к строкам обеспечивает большие возможности и гибкость, чем это доступно в языках, использующих строковый тип данных.
Одномерный массив представляет собой список взаимосвязанных переменных. Общая форма объявления одномерного массива выглядит так:
тип имя_массива[размер];
В этом объявлении тип задает базовый тип массива. Базовый определяет тип данных каждого элемента, из которых образуется массив. Число элементов, содержащихся в массиве, задается величиной размер. Приведенная ниже строка объявляет массив целых чисел int, имеющий имя sample и состоящий из 10 элементов:
int sample [10] ;
Обращение к индивидуальным элементам массива осуществляется с помощью индексов. Индекс определяет позицию элемента внутри массива. В С++ все массивы используют ноль в качестве индекса своего первого элемента. Например, после выполнения этого программного фрагмента: