C++中如何将字符串0777转化为八进制数777
时间: 2024-10-12 08:14:23 浏览: 24
在C++中,你可以使用`std::stoi()`函数或者手动转换来把字符串形式的八进制数(如"0777")转换成整数。这里我们先假设输入的是小写的八进制数字,因为C++标准库不会自动识别它是八进制。
**使用`std::stoi()`函数:**
```cpp
#include <string>
#include <iostream>
int main() {
std::string str = "0777";
int octal_num = std::stoi(str, nullptr, 8); // 第三个参数指定基数为8
std::cout << octal_num << std::endl; // 输出:777
return 0;
}
```
**手动转换:**
```cpp
#include <iostream>
int main() {
std::string str = "0777";
int result = 0;
for (char c : str) {
if (c >= '0' && c <= '7') {
result = result * 8 + (c - '0');
} else {
throw std::invalid_argument("Invalid character in the string");
}
}
std::cout << result << std::endl; // 输出:777
return 0;
}
```
阅读全文