C/C++ 将 char 转换为 int

C/C++ 将 char 转换为 int

1、 C 中将 char 转换为 int在 C 中,char 类型通常用于存储单个字符,可以隐式地转换为 int。这种转换会给出字符的 ASCII(或 Unicode)值。如有字符 'A',它会被转换为对应的 ASCII 值 65。

#include

int main() {

char ch = 'A';

int num = ch; // 从 char 到 int 的隐式转换

printf("字符 '%c' 的整数值是 %d\n", ch, num); // 输出: 65

return 0;

}

2、使用 atoi() 将字符字符串转换为整数如想将一串字符(例如 "123")转换为整数,可以使用 stdlib.h 库中的 atoi() 函数。

#include

#include

int main() {

char str[] = "123";

int num = atoi(str); // 将字符串 "123" 转换为整数 123

printf("字符串 \"%s\" 的整数值是 %d\n", str, num); // 输出: 123

return 0;

}

3、 使用 ASCII 值将 char 转换为 int如想得到字符本身的数值(即它的 ASCII 值),可以简单地将 char 用在算术运算中。如减去字符 '0' 可以得到相应的整数值。

#include

int main() {

char digit = '5';

int num = digit - '0'; // 将字符 '5' 转换为整数 5

printf("字符 '%c' 的整数值是 %d\n", digit, num); // 输出: 5

return 0;

}

4、C++ 中将单个 char 转换为 int C++ 中,方法与 C 几乎相同。如处理的是单个字符,可以直接将 char 类型赋给 int 变量,它会给出字符的 ASCII 值。

#include

using namespace std;

int main() {

char ch = 'A';

int num = ch; // 从 char 到 int 的隐式转换

cout << "字符 '" << ch << "' 的整数值是 " << num << endl; // 输出: 65

return 0;

}5、字符数组到整数的转换

有时可能需要将一个字符数组(例如一个表示数字的字符串)转换为整数。在这种情况下,可以使用标准库函数 atoi 或 C++11 的 std::stoi。

1)使用atoi

#include

#include // for atoi

using namespace std;

int main() {

const char* str = "1234"; // 字符串 "1234"

// 使用 atoi 将字符数组转换为整数

int number = atoi(str);

cout << "The integer value is: " << number << endl;

return 0;

}

2)使用stoi

#include

#include // for stoi

using namespace std;

int main() {

string str = "5678"; // 字符串 "5678"

// 使用 std::stoi 将字符串转换为整数

int number = stoi(str);

cout << "The integer value is: " << number << endl;

return 0;

}6、常见错误和注意事项如果字符表示的是非数字字符(如字母或符号),直接减去 '0' 可能导致意外结果。在此情况下,最好检查字符是否是合法数字字符。atoi 和 std::stoi:这些函数假定输入字符串能够正确表示一个整数。如果字符串包含无效字符(如字母或符号),atoi 会返回 0,std::stoi 会抛出异常(std::invalid_argument 或 std::out_of_range)。

#include

#include // for stoi

using namespace std;

int main() {

char ch = 'a'; // 非数字字符

// 判断字符是否是数字

if (ch >= '0' && ch <= '9') {

int number = ch - '0';

cout << "The integer value is: " << number << endl;

} else {

cout << "Invalid character for conversion!" << endl;

}

return 0;

}

相关数据

吉他的Bm和弦真的練不會可以暫時用什麼和弦代替?
365bet体育投注网

吉他的Bm和弦真的練不會可以暫時用什麼和弦代替?

⌚ 11-05 👁️‍🗨️ 7178
1073热血海贼王
365bet体育投注网

1073热血海贼王

⌚ 07-03 👁️‍🗨️ 3312
抖音电脑版
365bet体育投注网

抖音电脑版

⌚ 08-04 👁️‍🗨️ 6068