На главную Самоучитель pascal Форум программистов онлайн Решение задач pascal Задачи pascal Поиск
02 Июл 13

Тип string (строковый) в паскале


Комментарии :  2        Просмотры :  7860



Строковой тип предназначен для хранения определенных строк , например имени пользователя.

У этого типа есть определенные особенности , которые мы рассмотрим в данной статье.

Строковый тип может хранить в себе до 255 символов ( пробелы так же следует учитывать ).

Объявление переменный строкового типа :

Тип данных string можно объявить двумя способами : с обозначением длины строки и без обозначения. При простом объявлении строки в блоке var :
var
text:string;

для переменной text будет предоставлено 255 символов ( максимальное количество ). Но мы можем заранее понимать , что какая-либо переменная будет очень короткой и тогда мы используем объявление с обозначением длины :
var
name:string[20];

В данной строке поместятся всего 20 символов , которые будут занимать 21 байт , в отличии от 256 байт , которые займет целая строка. Экономия памяти на лицо.

Вы наверное уже задались вопросом : Почему строка в 255 символов занимает 256 байт ? все дело в том что строка хранит в себе не только символы , но и размер самой строки в нашем случае это 255.

Операции со строками :

Несколько строк можно складывать. Например вывод имени и фамилии одного человека может выглядеть так :
program mypascal;
Var
Name:string[20];
LastName:string[40];
begin
writeln('Введите ваше имя :');
readln(name);
writeln('Введите вашу фамилию :');
readln(lastname);
writeln(name+lastname);
end.

В данном случае , если мы введем Игорь Петров , то получим на выходе программы ИгорьПетров.

Строки также можно сравнивать ( больше , меньше или равно ). Пример сравнения легче всего рассмотреть на сравнении имен : Игорь и Иван.
Строки сравниваются по символам : чем ближе символ к началу алфавита тем меньше он "весит". Получается , что имя Игорь будет больше , так как 2 символ в их имени больше у Игоря.

Функция length :

Функция length возвращает длину строки. Например функция length('привет') вернет нам число 6 , так как слово привет состоит из 6 символов. С помощью этой функции вы сможете узнать длину любой строки.

Функция pos :

Давайте рассмотрим такую задачу : нам нужно найти на какой позиции в строке встречается некоторое слово :
program mypascal;
Var
text:string; { Выделяем под строку 255 символов }
word:string; { Слово , которое будем искать }
begin
writeln('Введите строку :');
readln(text);
writeln('Введите искомое слово :');
readln(word);
writeln('Слово ',word,' находится на позиции : ',pos(word,text))
end.

В этом случае на выходе программы мы получим позицию слова , которое встречается в строке в первый раз. Если такого слова нет , то функция возвращает 0.

Как работает функция pos : pos( какое слово ищем , в какой строке );

Функция insert :

Данная функция добавляет в строку любую другую строку . Она принимает в себя 3 атрибута : insert( какую строку добавить , в какую строку , на какую позицию ).

Функция delete :

Эта функция удаляет определенное количество символов из строки и несет в себе 3 атрибута : delete( из какой строки , с какой позиции , сколько символов удалить ).

На заметку :

Строку так же можно представить в виде массива длинной в 255 ячеек , заполненных символами. Пример :
program mypascal;
var
name:string;
begin
readln(name);
writeln(name[1]);
end.

В результате выполнения данной программы мы получим первый символ из введенного имени.

Для закрепления всех этих функция давайте рассмотрим такую задачу : Требуется ввести строку и ввести слово , которое будет заменено на слово "( удалено )".
program mypascal;
var
text,word:string;
posi,len:byte;
begin

writeln('Введите строку :');
readln(text);
writeln('Введите слово , которое хотите удалить :');
readln(word);

posi:= pos(word,text);

while (posi <> 0) do
begin

len:= length(word);
delete(text,posi,len);
insert(' ( удалено ) ',text,posi);
posi:= pos(word,text);

end;

writeln(text);

end.


Рейтинг материала : ( 5 / 5 )
Сообщить об ошибке
Комментарии :  2        Просмотры :  7860

Личный кабинет

Логин:
Пароль:

Поиск

RSS лента

Подписаться на rss


Подпишитесь на нашу ленту новостей rss и вы всегда сможете быть в курсе обновлений на нашем сайте.

Решение задач

Если вас интересует решение какой-либо задачи , то вы можете опубликовать
её условие на нашем сайте или форуме. И в скором времени другие пользователи помогут вам.

Опубликовать на сайте

Опубликовать на форуме

Опрос

Какую разновидность паскаля вы предпочитаете ?