计算机编程 - 字符

如果在计算机编程中使用数字很容易,那么使用字符就更容易了。 字符是简单的字母,如 a、b、c、d......、A、B、C、D......,但有一个例外。在计算机编程中,任何单个数字,如 0、1、2...以及特殊字符,如 $、%、+、-... 等,也被视为字符并将它们分配到字符类型变量中,您只需将它们放在单引号内即可。 例如,下面的语句定义了一个字符类型变量ch,我们为其赋值'a' −

char ch = 'a';

这里,ch是一个字符类型的变量,可以保存实现字符集的字符,'a'被称为字符文字 或字符常数。 不仅是 a、b、c、...,而且当任何数字(如 1、2、3...)或任何特殊字符(如 !、@、#、#、$、...)保存在单引号内时 ,那么它们将被视为字符文字,并且可以赋值给字符类型的变量,因此以下是有效的语句 −

char ch = '1';

字符数据类型占用 8 位内存,这意味着您可以在 ASCII 值介于 -127 到 127 之间的字符中存储任何内容,因此它可以容纳 256 个不同值中的任何一个。 字符数据类型可以存储键盘上可用的任何字符,包括特殊字符,如 !、@、#、#、$、%、^、&、*、(、)、_、+、{、} 等。

请注意,单引号内只能保留单个字母或单个数字,单引号内不允许包含多个字母或数字。 所以以下语句在C编程中是无效的 −

char ch1 = 'ab';
char ch2 = '10';

下面给出一个简单的例子,展示了如何在 C 语言中定义、分配和打印字符 −

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = 'a';      
   ch2 = '1';
   ch3 = '$';
   ch4 = '+';  

   printf( "ch1: %c
", ch1);
   printf( "ch2: %c
", ch2);
   printf( "ch3: %c
", ch3);
   printf( "ch4: %c
", ch4);
}

这里,我们使用 %c 来打印字符数据类型。 当执行上面的程序时,会产生以下结果 −

ch1: a
ch2: 1
ch3: $
ch4: +

转义序列

许多编程语言都支持称为转义序列的概念。 当字符前面有反斜杠 (\) 时,称为转义序列,对编译器具有特殊含义。 例如, 下面的语句中是一个有效字符,称为换行符 −

char ch = '
';

这里,字符n前面有一个反斜杠(\),它具有特殊含义,即换行,但请记住,反斜杠(\)仅对少数字符有特殊含义 。 以下语句在 C 编程中不会传达任何含义,并且将被假定为无效语句 −

char ch = '\1';

下表列出了 C 编程语言中可用的转义序列 −

转义序列 描述
此时在文本中插入制表符。
\b 此时在文本中插入退格键。
此时在文本中插入换行符。
此时在文本中插入回车符。
\f 此时在文本中插入换页符。
\' 此时在文本中插入单引号字符。
\" 此时在文本中插入双引号字符。
\ 此时在文本中插入反斜杠字符。

以下示例显示编译器如何解释 print 语句中的转义序列 −

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = '	';      
   ch2 = '
';

   printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}

执行上述程序时,会产生以下结果 −

Test for tabspace     and a newline 
will start here

Java 中的字符

以下是用 Java 编写的等效程序。 Java 处理字符数据类型的方式与我们在 C 编程中看到的方式非常相似。 然而,Java 提供了对字符操作的额外支持。

您可以尝试执行以下程序来查看输出,该输出必须与上面的 C 示例生成的结果相同。

public class DemoJava {
   public static void main(String []args) {
      char  ch1;
      char  ch2;
      char  ch3;
      char  ch4;
   
      ch1 = 'a';      
      ch2 = '1';
      ch3 = '$';
      ch4 = '+';  

      System.out.format( "ch1: %c
", ch1);
      System.out.format( "ch2: %c
", ch2);
      System.out.format( "ch3: %c
", ch3);
      System.out.format( "ch4: %c
", ch4);
   }
}

执行上述程序时,会产生以下结果 −

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Java 还支持转义序列,就像在 C 编程中使用它们一样。

Python 中的字符

Python 不支持任何字符数据类型,但所有字符都被视为字符串,即字符序列。 我们将在单独的章节中研究字符串。 在 Python 中使用单个字符时不需要进行任何特殊安排。

以下是用 Python 编写的等效程序 −

ch1 = 'a';      
ch2 = '1';
ch3 = '$';
ch4 = '+'; 

print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4

执行上述程序时,会产生以下结果 −

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Python 支持转义序列,就像在 C 编程中使用转义序列一样。