Cplusplus 简明教程

C++ Character (char) Data Type

C++ 中的 character (char) data type 表示字母数字值,这些值可以包含各种字符。这些字符可能包括字母,例如“a”、“b”和“c”,数字值,例如“1”、“2”和“3”,符号,例如“#”、“$”和“&”,以及更多内容。

character data type 占用 1 字节(即 8 位)的内存空间来存储字符。在 C++ 中,关键字“ char ”用于声明字符变量。

在该教程中,我们将探究有关字符数据类型的更多信息,及其相应的变量。

Use Character (char) Data Type

以下是一些字符 (char) 数据类型的用法 −

  1. 当我们只需要保存单个字符,而不需要 String 开销时,使用 char 数据类型。

  2. char 数据类型还可以以基本形式用作数组,而无需使用字符串文字。

  3. ASCII 形式中, char 数据类型可用于表示数值,反之亦然。

Values of char Data Type

C++ 中的字符 (char) 数据类型可以具有多个值,这些值如下 −

  1. 大写字母,如 A、B、Z 等。

  2. 小写字母,如 a、b、z 等。

  3. 符号,如 $、%、& 等。

  4. Escape Sequences ,将在本文后面讨论。

Creating a Character (char) Variable

我们可以使用关键字 “char” 后接变量名来声明一个字符变量。

Syntax

使用以下语法创建 char 类型变量 −

char variable_name = [value];

这里,[value] 是可选的,可在声明期间用于赋值。

Example

在下例中,我们声明了一个 char 变量,并给它赋值。

// C++ program to demonstrate
// Character data type
#include <iostream>
using namespace std;

int main(){
   char ch;
   return 0;
}

Example of Character (char) Data Type

以下示例展示了不同字符数据类型的用途 −

// C++ program to demonstrate
// Character data type
#include <iostream>
using namespace std;

int main() {
   char ch,ch1,ch2;
   ch='a';     //this is an alphabet
   ch1='&';    //this is a symbol
   ch2='1';   //this is a number
   cout<<ch<<endl<<ch1<<endl<<ch2<<endl;
   return 0;
}

Output

a
&
1

ASCII Values of Characters

ASCII 表示“美国信息交换标准代码”。它是分配给不同字符和符号的第一组编码值。现代计算机、 HTML 和互联网中使用的字符集均基于 ASCII。

ASCII 表现所有字符类型的一个数值,可以使用这些值来声明字符,而不用显式使用字符本身。它包含数字 0-9、大写和小写英文字母 A 到 Z 以及一些特殊字符。

以下数据给出了 C++ 中所有字符的 ASCII 值参考 −

ASCII Range of 'a' to 'z' =  97-122
ASCII Range of 'A' to 'Z' =  65-90
ASCII Range of '0' to '9' = 48-57

Example to Show ASCII Declaration

以下示例展示了用户如何使用 ASCII 值声明字符变量,而不用显式使用字符本身 −

#include <iostream>
using namespace std;

int main() {
   char ch,ch1,ch2;
   ch=65;     //this is an alphabet
   ch1=45;    //this is a symbol
   ch2=55;   //this is a number
   cout<<ch<<endl<<ch1<<endl<<ch2<<endl;

   return 0;
}
A
-
7

Implicit Conversion of Character Variables

可以使用 ASCII 引用将字符变量隐式转换为其整数值,反之亦然。因此,当我们在 C++ 中声明一个字符时,我们可以引用其 ASCII 值,而 ASCII 数字也可以用来访问其字符值。这是使用数据类型的隐式转换或类型转换来完成的。

我们可以添加我们要将给定变量转换成的目标数据类型的关键字,然后编译器会自动更改数据类型。例如,如果我们编写 char(97),它将加载 ASCII 数字 97 的字符值,即“a”。将字符数据类型转换为整型(ASCII)值也是可行的。

这在以下给出的示例中得到了明确解释:

Example

以下示例展示了 char 到 int 的隐式类型转换,反之亦然 −

#include <iostream>
using namespace std;

int main() {
   char c = '$';
   int a = 97;
   cout << "The Corresponding ASCII value of '$' : ";
   cout << int(c) << endl;

   cout << "The Corresponding  character value of 97 : ";
   cout << char(a) << endl;

   return 0;
}
The Corresponding ASCII value of '$' : 36
The Corresponding  character value of 97 : a

ESCAPE SEQUENCE IN C++

以反斜杠(“\”)开头的字符变量称为转义序列。它们确定编译器的输出窗口上的输出顺序。在此上下文中,反斜杠也称为“转义字符”。

下表显示了 C++ 中的不同类型的转义序列 −

S. No.

Escape Sequences

Character

1.

\n

Newline

2.

|Backslash

3.

\t

Horizontal Tab

4.

\v

Vertical Tab

5.

以下示例代码清楚地说明了转义序列的使用 −

Example 1

#include <iostream>
using namespace std;

int main() {
   char a = 'H';
   char b = 'E';
   char c = 'Y';
   char d = '\n'; //enter new line
   char e = '\t'; //tab to enter space
   cout << a << b << c << d << a << b << c << e << a << b << c;
   return 0;
}
HEY	HEYHEY
HEY	HEY

转义字符还可用于在字符串中插入 special characters 。以下给出的示例中清楚地说明了这一点 −

Example 2

#include <iostream>
using namespace std;

int main() {
   //string txt = "Hey, where are you "vikas" ? ";
   //this throws error
   string txt = "Hey, where are you \"vikas\"? ";

   cout<<txt<<endl;
   return 0;
}
Hey, where are you "vikas"?