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; }
输出
这是代码的屏幕截图:
代码解释
- 在代码中包含 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() 函数体结束。
打印 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; }
输出
这是代码的屏幕截图:
代码解释
- 将 iostream 头文件包含到代码中。然后我们将使用它的函数而不会出错。
- 将 std 命名空间包含到代码中。我们将使用它的类而不调用它。
- 调用 main() 函数。程序逻辑应放在此函数体中。
- 声明三个 char 变量 x、y 和 z。这三个变量分别被赋予整数值 65、66 和 67。这些将被视为字符的 ASCII 值。
- 在控制台上打印变量 x 的值。由于 x 被声明为 char,因此将返回 ASCII值为 65 的字符,即 A。
- 在控制台上打印变量 y 的值。由于 y 被声明为 char,因此将返回 ASCII值为 66 的字符,即 B。
- 在控制台上打印变量 z 的值。由于 z 被声明为 char,因此将返回 ASCII值为 67 的字符,即 C。
- 程序在成功完成后应返回值。
- 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; }
输出
这是代码的屏幕截图:
代码解释
- 在代码中包含 iostream 头文件以使用其函数。
- 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
- 调用 main() 函数。程序逻辑应添加到此函数体中。
- 在控制台打印一些文本。
- 声明一个名为 ch 的字符变量。
- 从键盘读取用户输入。输入将存储在变量 ch 中。由于用户将输入类似 abc 的字符序列,因此只有第一个字符 a 将被存储在变量 ch 中。
- 在控制台上打印输入的第一个字符、其 ASCII 码和其他文本。ASCII 码是通过将字符变量传递给 int() 函数来确定的。
- 读取用户输入的下一个字符。用户无需输入新字符。它将读取输入的第二个字符,即 b。
- 在控制台上打印输入的第二个字符、其 ASCII 码和其他文本。ASCII 码是通过将字符变量传递给 int() 函数来确定的。
- 程序在成功完成后应返回值。
- 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; }
输出
这是代码的屏幕截图:
代码解释
- 在代码中包含 iostream 头文件以使用其函数。
- 在我们的代码中包含 string 头文件以使用其函数。
- 包含 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 头文件到我们的代码中以使用其函数。
- 在我们的代码中包含 string 头文件以使用其函数。
- 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
- 调用 main() 函数。程序逻辑应添加到此函数体中。
- 创建一个名为 st 的字符串变量。
- 创建一个名为 b 的字符,其值为 B。
- 将值 A 分配给名为 st 的字符串。
- 使用 += 运算符将字符转换为字符串。
- 在控制台上打印字符串 st 的值以及其他文本。
- 程序在成功完成后应返回值。
- 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; }
输出
这是代码的屏幕截图:
- 包含 iostream 头文件到我们的代码中以使用其函数。
- 在我们的代码中包含 string 头文件以使用其函数。
- 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
- 调用 main() 函数。程序逻辑应添加到此函数体中。
- 创建一个名为 st 的字符串变量。
- 将字符 A 添加到字符串的末尾。
- 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
- 将字符串 st 的值设置为空。
- 将单个字符 C 分配给名为 st 的字符串。
- 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
- 将字符串 st 的值设置为空。
- 将字符串 st 的内容替换为单个字符 D。
- 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
- 将单个字符 E 从其第一个索引插入到名为 st 的字符串中。
- 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
- 程序在成功完成后应返回值。
- 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 头文件到我们的代码中以使用其函数。
- 在我们的代码中包含 string 头文件以使用其函数。
- 在我们的代码中包含 sstream 头文件以使用其函数。
- 包含 std 命名空间到我们的代码中以使用其类而无需调用其名称。
- 调用 main() 函数。程序逻辑应添加到此函数体中。
- 创建一个名为 st 的字符串变量。
- 创建一个名为 myst 的流变量。
- 将字符 A 插入名为 myst 的流对象。
- 将流对象转换为字符串。
- 在控制台上打印字符串 st 的值以及其他文本。endl (end line) 将光标移到下一行。
- 程序在成功完成后应返回值。
- main() 函数体结束。
摘要
- char 是 C++ 中用于存储字母的数据类型。
- C++ Char 是一种整数数据类型,意味着其值以整数形式存储。
- 它占用 1 字节的内存空间。
- C++ Char 只存储单个字符。
- Char 值被解释为 ASCII 字符。
- ASCII 是美国信息交换标准代码的缩写。
- 它指定了一种将英文字符表示为数字的特定方式。
- 要查看字符的 ASCII 值,我们将其传递给 int() 函数。
- 要查看 ASCII 值的相应 char 值,我们将 ASCII 定义为字符。