C++ Char 数据类型及示例
什么是字符?
Char 是为存储字母而设计的 C++ 数据类型。 Char 是字符的首字母缩写。它是一个整数数据类型,这意味着该值存储为整数。一个 char 占用 1 个字节的内存大小。它还存储一个字符。
在本 C++ 教程中,您将学习:
- 什么是字符?
- 什么是ASCII?
- 字符声明
- 语法:
- 打印 ASCII 值
- 打印字符值
- 输入字符
- 将字符转换为字符串
什么是 ASCII?
char 值被解释为 ASCII 字符。这类似于布尔值如何被解释为真或假。 ASCII 是美国信息交换标准代码的首字母缩写。它定义了一种将英文字符表示为数字的特定方式。
数字范围在 0 到 127 之间。例如,字符“a”相当于 ASCII 码 97。
字符声明
要在 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; }
输出:
下面是代码截图:
代码说明:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含 std 命名空间,以便在不调用它的情况下使用它的类。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 声明一个名为grade的字符变量。该变量也被赋值为 B。请注意,该变量的值用单引号括起来。
- 在控制台上与其他文本一起打印变量等级的值。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
代码说明:
- 将 iostream 头文件包含在我们的代码中,以便使用它的功能。
- 将 std 命名空间包含到我们的代码中,以便在不调用它的情况下使用它的类。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 声明一个名为 ch 的 char 变量。
- 在控制台上打印一些文本。文本要求用户输入变量 ch 的值。
- 从键盘读取用户输入并将其存储在变量 ch 中。
- 在控制台上打印一些文本。该文本将包括您为变量 ch 输入的字符、该字符的 ASCII 值以及其他文本。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
代码说明:
- 将 iostream 头文件包含到代码中。然后我们将使用它的功能而不会出错。
- 在代码中包含 std 命名空间。我们将使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应该进入这个函数的主体。
- 声明三个 char 变量 x、y 和 z。这三个已被分配整数值 65、66 和 67。这些将被视为字符的 ASCII 值。
- 在控制台打印出变量 x 的值。由于x被声明为char,所以会返回ASCII值为65的char,即A。
- 在控制台打印出变量 y 的值。由于y被声明为char,所以会返回ASCII值为66的char,即B。
- 在控制台打印出变量 z 的值。由于z被声明为char,所以会返回ASCII值为67的char,即C。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
代码说明:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含 std 命名空间以使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 在控制台上打印一些文本。
- 声明一个名为 ch 的字符变量。
- 从键盘读取用户输入。输入将存储在变量 ch 中。由于用户将键入 abc 之类的字符序列,因此只有第一个字符 a 将存储在变量 ch 中。
- 在控制台上打印输入的第一个字符、其 ASCII 代码和其他文本。 ASCII 码是通过将字符变量传递给 int() 函数来确定的。
- 读取用户输入的下一个字符。用户不需要输入新字符。它将改为读取输入的第二个字符,即 b。
- 在控制台上打印输入的第二个字符、其 ASCII 代码和其他文本。 ASCII 码是通过将字符变量传递给 int() 函数来确定的。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
代码说明:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含字符串头文件以使用它的功能。
- 在我们的代码中包含 std 命名空间以使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 将字符“C”转换为长度为 1 的字符串,并将结果字符串赋给变量 st。
- 在控制台上打印字符串 st 的值以及其他文本。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
代码说明:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含字符串头文件以使用它的功能。
- 在我们的代码中包含 std 命名空间以使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 创建一个名为 st 的字符串变量。
- 创建一个名为 b 的字符,其值为 B。
- 将值 A 赋给名为 st 的字符串。
- 使用 +=运算符将字符转换为字符串。
- 在控制台上打印字符串 st 的值以及其他文本。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含字符串头文件以使用它的功能。
- 在我们的代码中包含 std 命名空间以使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 创建一个名为 st 的字符串变量。
- 将字符 A 分配到字符串的末尾。
- 在控制台上打印字符串 st 的值以及其他文本。 endl(结束行)将光标移动到下一行。
- 将字符串 st 的值设置为空。
- 将单个字符 C 分配给名为 st 的字符串。
- 在控制台上打印字符串 st 的值以及其他文本。 endl(结束行)将光标移动到下一行。
- 将字符串 st 的值设置为空。
- 用单个字符 D 替换字符串 st 的内容。
- 在控制台上打印字符串 st 的值以及其他文本。 endl(结束行)将光标移动到下一行。
- 从第一个索引开始将单个字符 E 插入到名为 st 的字符串中。
- 在控制台上打印字符串 st 的值以及其他文本。 endl(结束行)将光标移动到下一行。
- 程序必须在成功完成后返回值。
- 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; }
输出:
下面是代码截图:
代码说明:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含字符串头文件以使用它的功能。
- 在我们的代码中包含 sstream 头文件以使用其功能。
- 在我们的代码中包含 std 命名空间以使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应添加到此函数的主体中。
- 创建一个名为 st 的字符串变量。
- 创建一个名为 myst 的流变量。
- 将字符 A 插入名为 myst 的流对象中。
- 将流对象转换为字符串。
- 在控制台上打印字符串 st 的值以及其他文本。 endl(结束行)将光标移动到下一行。
- 程序必须在成功完成后返回值。
- main() 函数体的结尾。
总结:
- char 是一种用于存储字母的 C++ 数据类型。
- C++ Char 是一种整数数据类型,这意味着该值以整数形式存储。
- 它占用 1 个字节的内存大小。
- C++ Char 只存储单个字符。
- Char 值被解释为 ASCII 字符。
- ASCII 是 American Standard Code for Information Interchange 的首字母缩写词。
- 它规定了一种以数字形式表示英文字符的特定方式。
- 要查看字符的 ASCII 值,我们将其传递给 int() 函数。
- 要查看ASCII值对应的char值,我们将ASCII定义为字符。
C语言