C++ 字符 (char) 数据类型



C++ 中的**字符 (char) 数据类型**代表字母数字值,可以是各种各样的字符。这些字符可能包括字母,如 'a'、'b' 和 'c',数字,如 '1'、'2' 和 '3',符号,如 '#'、'$' 和 '&',以及更多。

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

在本教程中,我们将进一步探讨字符数据类型及其对应的变量。

使用字符 (char) 数据类型

以下是字符 (char) 数据类型的一些用途:-

  • 当我们只需要保存单个字符并且不需要 字符串 的开销时,使用**char** 数据类型。
  • **char** 数据类型也可以以原始形式用作数组,而无需使用字符串字面量。
  • ASCII 形式中,**char** 数据类型可以用来表示数值,反之亦然。

char 数据类型的取值

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

  • 大写字母,如 A、B、Z 等。
  • 小写字母,如 a、b、z 等。
  • 符号,如 $、%、& 等。
  • 转义序列,这将在本文后面讨论。

创建字符 (char) 变量

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

语法

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

char variable_name = [value];

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

示例

在下面的示例中,我们声明了一个 char 变量,并为其赋值。

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

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

字符 (char) 数据类型的示例

以下示例显示了不同字符数据类型的用法:-

// 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; 
}

输出

a
&
1

字符的 ASCII 值

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

显示 ASCII 声明的示例

以下示例显示了用户如何使用 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

字符变量的隐式转换

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

我们可以添加我们需要将给定变量转换为的数据类型的关键字,编译器会自动更改数据类型。例如,如果我们写 char(97),它将加载 ASCII 数字 97 的字符值,即 'a'。对于将字符数据类型转换为整数(ASCII)值,这同样适用。

以下示例清楚地说明了这一点:-

示例

以下示例显示了 char 到 int 以及 int 到 char 的隐式类型转换:-

#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

C++ 中的转义序列

以反斜杠 (“\”) 开头的字符变量称为转义序列。它们决定了编译器输出窗口上的输出序列。在这种情况下,反斜杠也称为“转义字符”。

下表显示了 C++ 中可用的不同类型的转义序列:-

序号 转义序列 字符
1. \n 换行
2. \\ 反斜杠
3. \t 水平制表符
4. \v 垂直制表符
5. \0 空字符

以下示例代码清楚地说明了转义序列的用法:-

示例 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

转义字符还可以用于将特殊字符插入字符串中。以下示例清楚地说明了这一点:-

示例 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"? 
广告