Типы данных 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.
Думаю здесь всё предельно ясно.