Bra*_*-NB 1 c++ string int variable-assignment
在我的代码中我有这个:
int enemyNumber = numberType.at(0);
Run Code Online (Sandbox Code Playgroud)
numberType 是一个字符串.
第一个字符string numberType是'1'.但int enemyNumber在该任务之后变为48.
发生了什么,怎么让敌人的数字变成'1'?
从转换的单个字符,用一个值'0'到'9',到相应的数,减去的值'0':
int enemyNumber = numberType.at(0) - '0';
Run Code Online (Sandbox Code Playgroud)
如果要转换包含多个数字的字符串,标准库可以提供帮助:
// C++11 or later
int n = std::stoi(s);
// Historically
int n = std::atoi(s.c_str()); // no error checking
std::istringstream ss(s);
if (ss >> n) {
// success
}
Run Code Online (Sandbox Code Playgroud)
这是因为48是字符代码1.要获得整数值,推导出'0'类似于:int enemyNumber = numberType.at(0) - '0';.这样你会得到的字符代码'1'减去的字符代码'0'这即是1.这适用于所有数字,因为它们的字符代码是连续数字.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |