Computer Programming 简明教程
Computer Programming - Characters
如果在计算机编程中处理数字很简单,那么处理字符将会更简单。字符就像 a、b、c、d……、A、B、C、D……,但有一个例外。在计算机编程中,任何个位数数字,如 0、1、2……和特殊字符,如 $、%、+、- ……等,也都视为字符,要将它们分配给字符类型变量,你只需将其放入 single quotes 中。例如,以下语句定义了一个字符类型变量 ch ,我们给它分配一个值 'a'−
char ch = 'a';
在此, ch 是字符类型变量,可以容纳一个实现字符集中的字符,而 'a' 称为 character literal 或字符常量。不仅仅是 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\n", ch1);
printf( "ch2: %c\n", ch2);
printf( "ch3: %c\n", ch3);
printf( "ch4: %c\n", ch4);
}
在此,我们使用 %c 来打印字符数据类型。当执行上述程序时,它将产生以下结果 −
ch1: a
ch2: 1
ch3: $
ch4: +
Escape Sequences
许多编程语言支持一个称为 Escape Sequence 的概念。当一个字符前带有反斜杠 (\),它称为转义序列,并且它对编译器具有特殊含义。例如,以下语句中的 \n 是一个有效字符,并且称为换行符 −
char ch = '\n';
在此,字符 n 前面带有一个反斜杠 (\),它具有特殊含义,即换行符,但请记住反斜杠 (\) 仅对几个字符具有特殊含义。以下语句在 C 编程中没有任何意义,并且将被认为是一个无效的语句 −
char ch = '\1';
下表列出了 C 编程语言中可用的转义序列 −
Escape Sequence |
Description |
\t |
在此处在文本中插入制表符。 |
\b |
在此处在文本中插入退格符。 |
\n |
在此处在文本中插入换行符。 |
\r |
在此处在文本中插入回车符。 |
\f |
在此处在文本中插入换页符。 |
\' |
在此处在文本中插入一个单引号字符。 |
\" |
在此处在文本中插入一个双引号字符。 |
以下示例演示了编译器如何在 print 语句中解释转义序列 −
#include <stdio.h>
int main() {
char ch1;
char ch2;
char ch3;
char ch4;
ch1 = '\t';
ch2 = '\n';
printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}
当执行上述程序时,它将生成以下结果 −
Test for tabspace and a newline
will start here
Characters in 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\n", ch1);
System.out.format( "ch2: %c\n", ch2);
System.out.format( "ch3: %c\n", ch3);
System.out.format( "ch4: %c\n", ch4);
}
}
当执行上述程序时,它将生成以下结果 −
ch1: a
ch2: 1
ch3: $
ch4: +
Java 也以你在 C 编程中使用它们的方式支持转义序列。
Characters in 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 编程中使用它们的方式支持转义序列。