你好:)我正在尝试使用c ++将字符串转换为int。 我尝试过使用stol,stoll和strtol函数(也许我使用它们错了)但是它们似乎并没有保留我的字符串。
问题:如何将包含0和1的字符串逐字转换为int,以便我的int 完全就像我的字符串一样。
示例:
string s = "00010011";
int digits = 0; // convert int to: digits = 00010011;
欣赏它!
答案 0 :(得分:0)
好吧,你可以使用std::bitset
string s = "00010011";
int digits = 0; // convert int to: digits = 00010011;
std::bitset<32> bst(s);
digits = static_cast<int>(bst.to_ulong());
对于大小更迂腐,而不是std::bitset<32>
,你可以这样做:
std::bitset<(sizeof(int) * 8)> bst(s);
要取回字符串(好吧,不完全是):
std::string sp = std::bitset<32>(digits).to_string();
此外,要修剪sp
:
auto x = sp.find_first_not_of('0');
if(x != string::npos)
sp = sp.substr(x);