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; }
输出:
以下是代码截图:
代码说明:
- 在我们的代码中包含 iostream 头文件以使用其功能。
- 在我们的代码中包含 std 命名空间,以便使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应添加在此函数主体内。
- 声明一个名为grade的字符变量。该变量还被赋予了值B。注意,变量的值括在单引号中。
- 将变量 grade 的值与控制台上的其他文本一起打印。
- 程序成功完成后必须返回值。
- 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 被声明为字符,因此将返回 ASCII 值为 65 的字符,即 A。
- 在控制台上打印出变量 y 的值。由于 y 被声明为字符,因此将返回 ASCII 值为 66 的字符,即 B。
- 在控制台上打印出变量 z 的值。由于 z 被声明为字符,因此将返回 ASCII 值为 67 的字符,即 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 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; }
输出:
以下是代码截图:
代码说明:
- 在我们的代码中包含 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 是美国信息交换标准代码的缩写。
- 它规定了以数字形式表示英文字符的具体方法。
- 要查看字符的 ASCII 值,我们将其传递给 int() 函数。
- 为了查看 ASCII 值所对应的字符值,我们将 ASCII 定义为一个字符。