C++ Char 数据类型及示例

什么是 Char?

Char 是 C++ 的一种数据类型,用于存储字母。Char 是字母数字字符的缩写。它是一种整数数据类型,意味着其值以整数形式存储。Char 占用 1 字节的内存空间。它也存储单个字符。

什么是 ASCII?

char 值被解释为 ASCII 字符。这类似于布尔值被解释为真或假。ASCII 是美国信息交换标准代码的缩写。它定义了一种将英文字符表示为数字的特定方式。

这些数字的范围在 0 到 127 之间。例如,字符 ‘a’ 等同于 ASCII 码 97。

Char 声明

要在 C++ 中声明一个 char 变量,我们使用 char 关键字。后面应跟着变量名。变量可以在声明时进行初始化。变量的值应包含在单引号内。

语法

以下是 C++ 中 char 声明的语法

char variable-name;

variable-name 是要分配给变量的名称。

如果在声明时要分配值,可以使用此语法

char variable-name = 'value';	
  • variable-name 是 char 变量的名称。
  • value 是要分配给 char 变量的值。

示例 1

#include <iostream>
using namespace std;
int main() {
	char grade = 'B';
	cout << "I scored a: "<<grade;
	return 0;
}

输出

Char Declaration

这是代码的屏幕截图:

Char Declaration

代码解释

  1. 在代码中包含 iostream 头文件以使用其函数。
  2. 将 std 命名空间包含在我们的代码中,以便在不调用它的情况下使用其类。
  3. 调用 main() 函数。程序逻辑应添加到此函数体中。
  4. 声明一个名为 grade 的字符变量。该变量还被赋予了值 B。请注意,变量的值包含在单引号内。
  5. 将变量 grade 的值与控制台上的其他文本一起打印出来。
  6. 程序在成功完成后应返回值。
  7. main() 函数体结束。

打印 ASCII 值

如上所述,每个字符都被解释为 ASCII 字符。您可以获取任何字符的 ASCII 值。只需将字符传递给 int() 函数即可。此过程称为类型转换。让我们来演示一下

示例 2

#include <iostream>
using namespace std;
int main() {
	char ch;
	cout << "Enter any character: ";
	cin >> ch;
	cout << "The ASCII Value of " << ch << " is " << int(ch);
	return 0;
}

输出

Printing ASCII Value

这是代码的屏幕截图:

Printing ASCII Value

代码解释

  1. 将 iostream 头文件包含到我们的代码中,以便使用其函数。
  2. 将 std 命名空间包含到我们的代码中,以便在不调用它的情况下使用其类。
  3. 调用 main() 函数。程序逻辑应添加到此函数体中。
  4. 声明一个名为 ch 的 char 变量。
  5. 在控制台上打印一些文本。文本将要求用户为变量 ch 输入一个值。
  6. 从键盘读取用户输入并将其存储在变量 ch 中。
  7. 在控制台上打印一些文本。文本将包括您为变量 ch 输入的字符、该字符的 ASCII 值以及其他文本。
  8. 程序在成功完成后应返回值。
  9. main() 函数体结束。

打印 Char 值

给定一个 ASCII 值,C++ 编译器可以返回相应的字符。您声明一个 char 变量并为其分配一个整数值。它将被转换为相应的字符值。

示例 3

#include <iostream>
using namespace std;
int main() {
	char x = 64, y = 66, z = 71;
	cout << x;
	cout << y;
	cout << z;
	return 0;
}

输出

Printing Char Value

这是代码的屏幕截图:

Printing Char Value

代码解释

  1. 将 iostream 头文件包含到代码中。然后我们将使用它的函数而不会出错。
  2. 将 std 命名空间包含到代码中。我们将使用它的类而不调用它。
  3. 调用 main() 函数。程序逻辑应放在此函数体中。
  4. 声明三个 char 变量 x、y 和 z。这三个变量分别被赋予整数值 65、66 和 67。这些将被视为字符的 ASCII 值。
  5. 在控制台上打印变量 x 的值。由于 x 被声明为 char,因此将返回 ASCII值为 65 的字符,即 A。
  6. 在控制台上打印变量 y 的值。由于 y 被声明为 char,因此将返回 ASCII值为 66 的字符,即 B。
  7. 在控制台上打印变量 z 的值。由于 z 被声明为 char,因此将返回 ASCII值为 67 的字符,即 C。
  8. 程序在成功完成后应返回值。
  9. main() 函数体结束。

输入 Chars

我们可以使用 std::cin 函数从键盘读取用户输入的 char。std::cin 允许您输入多个字符。但是,字符变量只能存储一个字符。这意味着只有输入的第一个字符会被提取并存储在字符变量中。其余的将保留在 std::cin 使用的缓冲区中。要提取它们,请进行后续调用 std::cin。

示例4

#include <iostream>
using namespace std;
int main() {
	cout << "Type a sequence of characters: "; 
	char ch;
	cin >> ch; 
	cout <<"The ASCII code of "<< ch << " is "<< int(ch) << '\n';
	cin >> ch; 
	cout <<"The ASCII code of " << ch << " is "<< int(ch) << '\n';
	return 0;
}

输出

Inputting Chars

这是代码的屏幕截图:

Inputting Chars

代码解释

  1. 在代码中包含 iostream 头文件以使用其函数。
  2. 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
  3. 调用 main() 函数。程序逻辑应添加到此函数体中。
  4. 在控制台打印一些文本。
  5. 声明一个名为 ch 的字符变量。
  6. 从键盘读取用户输入。输入将存储在变量 ch 中。由于用户将输入类似 abc 的字符序列,因此只有第一个字符 a 将被存储在变量 ch 中。
  7. 在控制台上打印输入的第一个字符、其 ASCII 码和其他文本。ASCII 码是通过将字符变量传递给 int() 函数来确定的。
  8. 读取用户输入的下一个字符。用户无需输入新字符。它将读取输入的第二个字符,即 b。
  9. 在控制台上打印输入的第二个字符、其 ASCII 码和其他文本。ASCII 码是通过将字符变量传递给 int() 函数来确定的。
  10. 程序在成功完成后应返回值。
  11. main() 函数体结束。

将字符转换为字符串

有许多方法可以用于将字符转换为 字符串

让我们来讨论一下

#1:使用 String 类提供的构造函数

可以使用以下语法完成此操作

string st(int n,char x);

参数 n 表示要生成的字符串的大小。

参数 x 是要转换为字符串的字符。

该函数返回一个字符串。

示例 5

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st(1, 'C');
	cout << "The resulting string is : " << st;
	return 0;
}

输出

Converting Character to String

这是代码的屏幕截图:

Converting Character to String

代码解释

  1. 在代码中包含 iostream 头文件以使用其函数。
  2. 在我们的代码中包含 string 头文件以使用其函数。
  3. 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
  4. 调用 main() 函数。程序逻辑应添加到此函数体中。
  5. 将字符“C”转换为长度为 1 的字符串,并将结果字符串赋给变量 st。
  6. 在控制台上打印字符串 st 的值以及其他文本。
  7. 程序在成功完成后应返回值。
  8. main() 函数体结束。

#2) 使用 std::string 运算符 = 和 +=

运算符 = 和 += 已经重载了字符。这两个运算符可用于将特定字符转换为字符串。

示例 6

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st;
	char b = 'B';
	st = 'A';
	st += b;
	cout << "The resulting string is : " << st;
	return 0;
}

输出

Converting Character to String

这是代码的屏幕截图:

Converting Character to String

代码解释

  1. 包含 iostream 头文件到我们的代码中以使用其函数。
  2. 在我们的代码中包含 string 头文件以使用其函数。
  3. 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
  4. 调用 main() 函数。程序逻辑应添加到此函数体中。
  5. 创建一个名为 st 的字符串变量。
  6. 创建一个名为 b 的字符,其值为 B。
  7. 将值 A 分配给名为 st 的字符串。
  8. 使用 += 运算符将字符转换为字符串。
  9. 在控制台上打印字符串 st 的值以及其他文本。
  10. 程序在成功完成后应返回值。
  11. main() 函数体结束。

#3:使用 std::string 方法

std::string 类带有许多重载函数,可以帮助您将字符转换为字符串。

它们包括

  • push_back 此函数将特定字符分配给字符串的末尾。它已为字符重载。它的语法如下
    void push_back(char ch)
    

    参数 ch 是要转换为字符串的字符。

  • append 它将特定字符的多个副本分配给字符串。该函数采用以下语法
    string& append(size_t n,char ch)
    

    参数 n 表示字符将被附加的次数。

    参数 ch 是要附加到字符串的字符。

  • assign 此函数将字符串的当前内容替换为指定字符的 n 个副本。它采用以下语法
    string& assign(size_t n,char ch);

    参数 n 表示字符的总副本数。

    参数 ch 是要复制到字符串中的字符。

  • insert insert 函数在字符串的起始位置插入 n 个字符副本,如参数所示。它采用以下语法
    string& insert(size_t p,size_t n,char ch);

    p 参数表示将插入字符的起始位置。

    参数 n 表示字符的总副本数。

    参数 ch 是要插入字符串中的字符。

示例 7

#include<iostream>
#include <string>
using namespace std;
int main() {
	string st;
	st.push_back('A');
	cout << "push_back A returns : " << st << endl;
	st = "";
	st.append(1, 'C');
	cout << "append C returns : " << st << endl;
	st = "";
	st.assign(1, 'D');
	cout << "assign D returns : " << st << endl;
	st.insert(0, 1, 'E');
	cout << "insert single character returns : " << st << endl;
	return 0;
}

输出

Converting Character to String

这是代码的屏幕截图:

Converting Character to String

  1. 包含 iostream 头文件到我们的代码中以使用其函数。
  2. 在我们的代码中包含 string 头文件以使用其函数。
  3. 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
  4. 调用 main() 函数。程序逻辑应添加到此函数体中。
  5. 创建一个名为 st 的字符串变量。
  6. 将字符 A 添加到字符串的末尾。
  7. 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
  8. 将字符串 st 的值设置为空。
  9. 将单个字符 C 分配给名为 st 的字符串。
  10. 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
  11. 将字符串 st 的值设置为空。
  12. 将字符串 st 的内容替换为单个字符 D。
  13. 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
  14. 将单个字符 E 从其第一个索引插入到名为 st 的字符串中。
  15. 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
  16. 程序在成功完成后应返回值。
  17. main() 函数体结束。

#4:使用 std::stringstream

要使用此类将字符转换为字符串,请将字符插入流。

它们将被写入字符串。

示例 8

#include<iostream>
#include <string>
#include <sstream>

using namespace std;
int main() {

	string st;

	stringstream myst;

	myst << 'A'; 
	myst >> st;

	cout << "The conversion of the single character returns the string: " << st;

	return 0;
}

输出

Converting Character to String

这是代码的屏幕截图:

Converting Character to String

代码解释

  1. 包含 iostream 头文件到我们的代码中以使用其函数。
  2. 在我们的代码中包含 string 头文件以使用其函数。
  3. 在我们的代码中包含 sstream 头文件以使用其函数。
  4. 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
  5. 调用 main() 函数。程序逻辑应添加到此函数体中。
  6. 创建一个名为 st 的字符串变量。
  7. 创建一个名为 myst 的流变量。
  8. 将字符 A 插入名为 myst 的流对象。
  9. 将流对象转换为字符串。
  10. 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
  11. 程序在成功完成后应返回值。
  12. main() 函数体结束。

摘要

  • char 是 C++ 中用于存储字母的数据类型。
  • C++ Char 是一种整数数据类型,意味着其值以整数形式存储。
  • 它占用 1 字节的内存空间。
  • C++ Char 只存储单个字符。
  • Char 值被解释为 ASCII 字符。
  • ASCII 是美国信息交换标准代码的缩写。
  • 它指定了一种将英文字符表示为数字的特定方式。
  • 要查看字符的 ASCII 值,我们将其传递给 int() 函数。
  • 要查看 ASCII 值的相应 char 值,我们将 ASCII 定义为字符。