کاراکترها (Chars)

نوع char، کد اسکی با ord، ساخت کاراکتر با chr و توابع succ/pred/upcase.

کاراکتر: کوچک‌ترین واحد متن

نوع char دقیقاً یک کاراکتر نگه می‌دارد — یک حرف، رقم یا علامت:

var
  c: char;
begin
  c := 'A';
  writeln(c);   { A }
end;
char با تک‌کوتیشن و فقط یک کاراکتر: 'A' ✅ — "A" و 'AB' ❌

پشت صحنه: کد اسکی

هر کاراکتر در حافظه یک عدد است (کد اسکی). پاسکال بین این دو ترجمه دارد:

writeln(ord('A'));    { 65 — کاراکتر به کد }
writeln(chr(65));     { A — کد به کاراکتر }
writeln(ord('a'));    { 97 }
writeln(ord('0'));    { 48 }

رابطه جالب حروف بزرگ و کوچک

{ 'a' = 'A' + 32 }
writeln(chr(ord('A') + 32));   { a }
به همین دلیل مقایسه 'a' < 'b' درست است — چون در واقع ۹۷ < ۹۸ مقایسه می‌شود!

توابع کاراکتری

تابعکارمثالنتیجه
upcase(c)بزرگ کردن حرفupcase('a')'A'
succ(c)کاراکتر بعدیsucc('a')'b'
pred(c)کاراکتر قبلیpred('b')'a'
ord(c)کد اسکیord('A')65
chr(n)کد به کاراکترchr(97)'a'

پیمایش حروف الفبا

var c: char;
begin
  for c := 'a' to 'e' do
    write(c, ' ');
  writeln;   { a b c d e }

  for c := 'z' downto 'x' do
    write(c, ' ');
  writeln;   { z y x }
end;

مثال: رمز سزار (Caesar Cipher)

var
  s: string;
  i: integer;
begin
  s := 'hello';
  for i := 1 to length(s) do
    s[i] := chr(ord(s[i]) + 3);   { هر حرف ۳ تا جلو }
  writeln(s);   { khoor }
end;

مثال: تشخیص نوع کاراکتر

var c: char;
begin
  c := '7';
  if (c >= '0') and (c <= '9') then
    writeln('رقم است')
  else if (c >= 'a') and (c <= 'z') then
    writeln('حرف کوچک')
  else if (c >= 'A') and (c <= 'Z') then
    writeln('حرف بزرگ')
  else
    writeln('علامت');
end;

خلاصه

این مبحث بخشی از دوره آموزش کامل پاسکال است.

ابزارهای مرتبط