Difference between revisions of "Char"

From Free Pascal wiki
Jump to navigationJump to search
(Use pascal highlighter)
(20 intermediate revisions by 9 users not shown)
Line 1: Line 1:
 
{{Char}}
 
{{Char}}
  
A '''char''' is a single character. A [[Byte|byte]] and a char are the same thing, except a char can be used as a character, or as part of a [[String|string]] type, and cannot be used in an arithmetic expression, while a byte can only be referred to as a numeric type.
+
A '''char''' stores a single character and is currently one byte, and [[AnsiChar]] is an alias for it. However, in the future, '''char''' may become the same as a [[WideChar]]. For now, [[Byte|byte]] and char are almost identical - one byte (8-bits) in size. However, a char can only be used as a character, or as part of a [[String|string]] type, and cannot be used in an arithmetic expression, while a byte can only be referred to as a numeric type.
  
 
For example:
 
For example:
<delphi>
+
<syntaxhighlight lang=pascal>
 
  var ch: char;
 
  var ch: char;
    c: byte;  
+
      c: byte;  
  
 
  begin
 
  begin
   ch := 'A';  c := 64;  { are the same action, and are legal }
+
   ch := 'A';  c := 65;  { are the same action, and are legal }
   ch := 64;  c := 'A'; { while they are the same action, this is illegal }
+
   ch := 65;  c := 'A'; { while they are internally the same values,  
 +
                          direct assignment between Chars and Bytes is illegal }
 
  end.
 
  end.
</delphi>
+
</syntaxhighlight>
  
The use of char or byte as a data type provides better documentation as to the purpose of the use of the particular variable.  The char type can be [[coersion|coerced]] to byte by using the [[ord]] function.  Byte type values can be coerced to char by using the [[chr]] function.
+
The use of char or byte as a data type provides better documentation as to the purpose of the use of the particular variable.  The char type can be [[coersion|coerced]] to byte by using the [[Ord|ord]] function.  Byte type values can be coerced to char by using the [[Chr|chr]] function.
  
 
type chars functions follows the [[ASCII]].
 
type chars functions follows the [[ASCII]].
Line 20: Line 21:
 
The above program corrected to legal use:
 
The above program corrected to legal use:
  
<delphi>
+
<syntaxhighlight lang=pascal>
 
  var ch: char;
 
  var ch: char;
 
       c: byte;  
 
       c: byte;  
  
 
  begin
 
  begin
     ch := 'A'; c := 64; { are the same action, and are legal }
+
     ch := 'A';     c := 65;       { are the same action, and are legal }
     ch := chr(64); c := ord('A'); { now legal }
+
     ch := chr(65); c := ord('A'); { now legal }
 +
    ch := Char(49); c := Byte('A'); { also legal and guaranteed to happen at compile time }
 
  end.
 
  end.
</delphi>
+
</syntaxhighlight>
  
{{Data types}}
+
A CHAR variable can also be used as a loop control variable:
 +
<syntaxhighlight lang=pascal>
 +
var
 +
  Loop: Char;
  
[[category:Pascal]]
+
begin
 +
  for Loop := 'a' to 'c' do WriteLn(Loop);
 +
end.
 +
</syntaxhighlight>
  
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html reverse lookup]
+
== See also ==
 +
* [[Character and string types]], a detailed reference covering internal memory layout and access options.
  
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup cell]
+
{{Data types}}

Revision as of 23:32, 24 January 2020

Deutsch (de) English (en) español (es) français (fr) italiano (it) русский (ru)

A char stores a single character and is currently one byte, and AnsiChar is an alias for it. However, in the future, char may become the same as a WideChar. For now, byte and char are almost identical - one byte (8-bits) in size. However, a char can only be used as a character, or as part of a string type, and cannot be used in an arithmetic expression, while a byte can only be referred to as a numeric type.

For example:

 var ch: char;
      c: byte; 

 begin
   ch := 'A';  c := 65;  { are the same action, and are legal }
   ch := 65;   c := 'A'; { while they are internally the same values, 
                           direct assignment between Chars and Bytes is illegal }
 end.

The use of char or byte as a data type provides better documentation as to the purpose of the use of the particular variable. The char type can be coerced to byte by using the ord function. Byte type values can be coerced to char by using the chr function.

type chars functions follows the ASCII.

The above program corrected to legal use:

 var ch: char;
      c: byte; 

 begin
    ch := 'A';      c := 65;        { are the same action, and are legal }
    ch := chr(65);  c := ord('A');  { now legal }
    ch := Char(49); c := Byte('A'); { also legal and guaranteed to happen at compile time }
 end.

A CHAR variable can also be used as a loop control variable:

var
   Loop: Char;

begin
  for Loop := 'a' to 'c' do WriteLn(Loop);
end.

See also


navigation bar: data types
simple data types

boolean byte cardinal char currency double dword extended int8 int16 int32 int64 integer longint real shortint single smallint pointer qword word

complex data types

array class object record set string shortstring