Перейти к содержимому


Типы данных char и string


Сообщений в теме: 3

#1 Санек

    Продвинутый пользователь

  • Администраторы
  • 41 сообщений
  • ГородВитебск

Отправлено 25 декабря 2011 - 18:56

Типы данных char и string

char - символьный тип

string - строковый тип

Символьный тип

Значением переменных символьного типа char является один символ. Каждому символу соответствует код символа - целое число в диапазоне от 0 до 255. Значит, символьный тип является порядковым. В таких языках программирования как C, Java тип char относят к целым типам, что разумно, т.к. в памяти компьютера нет символов - есть только их числовые коды. Значит, все действия по обработке символов сводятся к действиям над целыми числами, расположенными строго по порядку.

Над данными символьного типа определены операции отношения: =, <>, <, >, <=, >=.

Для данных символьного типа определены стандартные функции:

  • chr(x) - возвращает значение символа его коду;
  • ord(ch) - возвращает код заданного символа ch;
  • pred(ch) - возвращает предыдущий символ;
  • succ(ch) - возвращает следующий символ;
  • upcase(ch) - преобразует строчную букву в заглавную.
Например
  • ord('A') = 65
  • chr(128) = 'Б'
  • pred('Б') = 'А'
  • succ('Г') = 'Д'
  • upcase('n') = 'N'
Строковый тип

Строка - это последовательность символов. Максимальное количество символов в строке может изменяться от 1 до 255. Переменную строкового типа можно определить через описание в разделе описания типов var или непосредственно в разделе объявления переменных.

var идентификатор: string;

Строка в Паскале трактуется как массив символов. Для строки из n символов в памяти компьютера отводится n+1 байт; n байт - для хранения символов строки, а один доп. байт - для значения текущей длины строки. Этот доп. байт имеет номер 0, соответственно первый символ строки имеет номер 1, второй - номер 2 и т.д.

К любому символу строки можно обратиться как к элементу массива. Но в отличии от массива, строка считывается и выводится просто

readln(s);
writeln(s);

где s - строка

Задача

Дана строка s. Вывести её в перевернутом виде и вывести все слова этой строки по отдельности

Решение

var s:string;
	i:longint;
begin
readln(s);
for i:=length(s) downto 1 do
  write(s[i]);
writeln;
for i:=1 to length(s) do
  if (s[i]=' ') and (s[i+1]<>' ') then writeln
   else write(s[i]);
end.



Думаю здесь всё предельно ясно.

#2 petuhovskiy

    Пользователь

  • Пользователи
  • PipPip
  • 16 сообщений
  • ГородВитебск

Отправлено 06 января 2012 - 19:13

Советую добавить про необычные свойства массива char'ов. ;)
Yo

#3 Andrew

    Пользователь

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 16 января 2012 - 19:56

Просмотр сообщенияpetuhovskiy (06 января 2012 - 19:13) писал:

Советую добавить про необычные свойства массива char'ов. ;)

А_какое_там_свойство? :blink:
redcode.do.am ( сайт пока пуст )

#4 petuhovskiy

    Пользователь

  • Пользователи
  • PipPip
  • 16 сообщений
  • ГородВитебск

Отправлено 20 февраля 2012 - 19:16

Просмотр сообщенияAndrew (16 января 2012 - 19:56) писал:

А_какое_там_свойство? :blink:

Можно выводить массив char'ов(a) вроде так - write(copy(a,1,n)).
И делать с ним всё что со строками.
Yo





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анононимных