C++ Char 数据类型及其示例

夏尔是什么?

Char 是 C++ 专为存储字母而设计的数据类型。Char 是字母数字字符的缩写。它是一种整数数据类型,这意味着值存储为整数。char 占用 1 个字节的内存大小。它还存储单个字符。

什么是ASCII?

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

数字范围在 0 到 127 之间。例如,字符“a”相当于 ASCII 代码 97。

字符声明

声明 char 变量 C++,我们使用 char 关键字。后面应该跟变量的名称。变量可以在声明时初始化。变量的值应该用单引号括起来。

句法

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

char variable-name;

变量名是要分配给变量的名称。

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

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

例如1:

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

输出:

字符声明

以下是代码截图:

字符声明

代码说明:

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

输出:

打印 ASCII 值

以下是代码截图:

打印 ASCII 值

代码说明:

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

打印字符值

给定一个 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;
}

输出:

打印字符值

以下是代码截图:

打印字符值

代码说明:

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

输入字符

我们可以使用 std::cin 函数读取用户通过键盘输入的字符。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;
}

输出:

输入字符

以下是代码截图:

输入字符

代码说明:

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

输出:

将字符转换为字符串

以下是代码截图:

将字符转换为字符串

代码说明:

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

#2)使用 std::string Operators = 和 +=

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

例如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;
}

输出:

将字符转换为字符串

以下是代码截图:

将字符转换为字符串

代码说明:

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

#3:使用 std::string 方法

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

这些措施包括:

  • 推回 此函数将特定字符分配给字符串的结尾。它针对字符进行了重载。它采用以下语法:
    void push_back(char ch)
    

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

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

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

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

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

    参数 n 表示该角色的总副本数。

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

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

输出:

将字符转换为字符串

以下是代码截图:

将字符转换为字符串

  1. 在我们的代码中包含 iostream 头文件以使用其功能。
  2. 在我们的代码中包含字符串头文件以使用其功能。
  3. 在我们的代码中包含 std 命名空间,以便使用它的类而不调用它。
  4. 调用 main() 函数。程序逻辑应添加在此函数主体内。
  5. 创建一个名为 st 的字符串变量。
  6. 将字符 A 分配给字符串的末尾。
  7. 将字符串 st 的值与其他文本一起打印在控制台上。endl(结束行)将光标移动到下一行。
  8. 将字符串 st 的值设置为空。
  9. 将单个字符 C 分配给名为 st 的字符串。
  10. 将字符串 st 的值与其他文本一起打印在控制台上。endl(结束行)将光标移动到下一行。
  11. 将字符串 st 的值设置为空。
  12. 用单个字符 D 替换字符串 st 的内容。
  13. 将字符串 st 的值与其他文本一起打印在控制台上。endl(结束行)将光标移动到下一行。
  14. 从第一个索引处将单个字符 E 插入到名为 st 的字符串中。
  15. 将字符串 st 的值与其他文本一起打印在控制台上。endl(结束行)将光标移动到下一行。
  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;
}

输出:

将字符转换为字符串

以下是代码截图:

将字符转换为字符串

代码说明:

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

总结

  • char 是 C++ 用于存储字母的数据类型。
  • C++ Char 是整数数据类型,表示该值以整数形式存储。
  • 它占用1字节的内存大小。
  • C++ Char仅存储单个字符。
  • Char 值被解释为 ASCII 字符。
  • ASCII 是美国信息交换标准代码的缩写。
  • 它规定了以数字形式表示英文字符的具体方法。
  • 要查看字符的 ASCII 值,我们将其传递给 int() 函数。
  • 为了查看 ASCII 值所对应的字符值,我们将 ASCII 定义为一个字符。