编程 - 字符( 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编程语言中可用的转义序列 -
逃脱序列 | 描述 |
---|---|
\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
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编程中使用它们一样。
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编程中使用它们的方式相同。