我正在研究一个c ++程序,我需要接受一个0-255的二进制数,包括一个字符串(它必须是一个字符串)。我可以在一段时间(输入无效)循环中写什么来检查字符串是否在00000000到11111111之间(包括两者)。非常感谢
答案 0 :(得分:5)
假设您使用std::string
:
while( str.length()==8 && str.find_first_not_of("01")==std::string::npos )
也就是说,如果你真的希望它总是8个字符。根据您的喜好进行调整(根据您的评论,我想要str.length()<=8
或(!str.empty()) && str.length()<=8
。
答案 1 :(得分:0)
我建议你使用 std::bitse
t
如果你的字符串总是包含位,即只有** 0 和 1 你可以使用**
位集&LT 8是氢; bitOfStr(字符串( “01011”)); //从字符串初始化 位集&LT 8是氢; bitOfStr(YourStringhere);
注意:如果字符串包含其他任何内容,那么在bitset长度之前0/1将通过异常。
on bitset 您可以更有效地执行其余操作。