char int string 的互相转换
在 C++ 中,字符串(string
)和整数(int
)的区别
C++ 区分 字符串(string
或 char[]
)和 整数(int
),它们的存储方式和操作方式不同。
1. char
、int
、string
的区别
类型 | 存储内容 | 例子 |
---|---|---|
char | 单个字符(使用 ASCII 存储) | 'A' , '5' |
int | 整数数值(二进制存储) | 5 , 100 |
string | 多个字符组成的字符串 | "Hello" , "123" |
2. char
vs string
vs int
代码 | 变量类型 | 存储内容 | 表示方式 |
---|---|---|---|
char ch = '5'; | char | 53 (ASCII) | 字符 '5' |
int num = 5; | int | 00000101 (二进制) | 整数 5 |
string str = "5"; | string | ['5', '\0'] | 字符串 "5" |
示例代码
#include <iostream>
using namespace std;
int main() {
char ch = '5'; // 存储字符 '5',ASCII 码是 53
int num = 5; // 存储整数 5
string str = "5"; // 存储字符串 "5"
cout << "char: " << ch << endl; // 输出: 5
cout << "char ASCII: " << int(ch) << endl; // 输出: 53
cout << "int: " << num << endl; // 输出: 5
cout << "string: " << str << endl; // 输出: 5
return 0;
}
运行结果
char: 5
char ASCII: 53
int: 5
string: 5
3. char
+ int
和 string
+ int
的区别
(1)char
+ int
char ch = '0'; // '0' 的 ASCII 值是 48
int num = 5;
char result = ch + num;
cout << result << endl; // 输出 '5'
'0'
的 ASCII 值是48
ch + num
等于48 + 5 = 53
char(53)
是'5'
,所以result
变成'5'
(2)string
+ int
string str = "Hello";
int num = 5;
string result = str + to_string(num);
cout << result << endl; // 输出 "Hello5"
to_string(num)
把int
转成"5"
- 字符串拼接
"Hello" + "5"
变成"Hello5"
4. 什么时候用字符串,什么时候用整数?
✅ 用整数(int
)的情况
- 需要进行数学计算(加减乘除、比较大小)。
- 需要高效存储和处理大数据。
- 示例
int a = 5, b = 10; int sum = a + b; // 进行数值运算
✅ 用字符(char
)的情况
- 只表示单个字符(如
'A'
、'9'
)。 - 需要用ASCII 码进行计算(如
char('A' + 1) == 'B'
)。 - 示例
char grade = 'A'; char nextGrade = grade + 1; // 'B'
✅ 用字符串(string
)的情况
- 需要存储多个字符(如
"Hello"
、"123"
)。 - 需要进行字符串拼接(如
"Hello" + " World"
)。 - 示例
string name = "Alice"; string message = name + " says hello!";
5. char
和 int
之间的转换
(1)char
→ int
char ch = '9';
int num = ch - '0'; // '9' (ASCII 57) - '0' (ASCII 48) = 9
cout << num << endl; // 输出 9
解释:
'9'
的 ASCII 值是57
'0'
的 ASCII 值是48
'9' - '0'
=57 - 48 = 9
(2)int
→ char
int num = 7;
char ch = num + '0'; // 7 + 48 = 55,对应字符 '7'
cout << ch << endl; // 输出 '7'
6. string
和 int
之间的转换
(1)string
→ int
#include <iostream>
using namespace std;
int main() {
string str = "123";
int num = stoi(str); // 把 "123" 变成整数 123
cout << num + 1 << endl; // 输出 124
}
(2)int
→ string
#include <iostream>
using namespace std;
int main() {
int num = 123;
string str = to_string(num); // 把 123 变成 "123"
cout << str + "456" << endl; // 输出 "123456"
}
7. 总结
操作 | 用 int | 用 char | 用 string |
---|---|---|---|
数学运算 | ✅ | ❌ | ❌ |
存储单个字符 | ❌ | ✅ | ❌ |
存储多个字符 | ❌ | ❌ | ✅ |
字符串拼接 | ❌ | ❌ | ✅ |
ASCII 码计算 | ❌ | ✅ | ❌ |
转换 0-9 | ✅ | ✅ | ✅ |
关键点
- 整数(
int
) 用于数学计算,不能直接和字符串拼接。 - 字符(
char
) 用于存储单个字符,也可以用 ASCII 码进行计算。 - 字符串(
string
) 用于存储多个字符,可以进行拼接。
🔥 最后一句话总结
int
适用于数值计算,char
适用于单个字符,string
适用于文本存储和拼接! 🚀