[英]Validating a user's input to make sure it's in binary (C++)
我正在使用C ++程序,我需要將0-255(含)之間的二進制數字作為字符串(必須是字符串)。 我可以在while(輸入無效)循環中寫些什么來檢查字符串是否在00000000到11111111(含)之間。 非常感謝
假設您使用std::string
:
while( str.length()==8 && str.find_first_not_of("01")==std::string::npos )
也就是說,如果您真的希望它始終為8個字符。 調整以適合您的口味(就我的評論而言,您希望str.length()<=8
或(!str.empty()) && str.length()<=8
。
我建議您使用std::bitse
t
如果您的字符串始終包含位,即僅** 0和1,那么您可以使用**
bitset <8> bitOfStr(string(“ 01011”)); //從字符串bitset <8>初始化bitOfStr(YourStringhere);
注意:如果字符串包含其他任何內容,則在位長度之前為0/1,它將通過異常。
在位上,您可以更高效地執行其余操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.