2015-02-08 126 views
-1

我想创建一个布尔函数,如果字符串只包含1,0和空格,则返回false。否则,它将返回真正的函数调用嵌套在while循环。这是我到目前为止的代码:检查字符串中的所有字符是1,0还是“”

bool check_bin_num(string& bin) { 
    for (int i = 0; i <= back.length(); i++) { 
      if (!(bin[i] == '0' || bin[i] == '1' || bin[i] == ' ')) { 
       return true; 
      } 
    } 
    return false; 
} 

任何帮助,将不胜感激!

+2

在你的支架1肯定需要是我 – rbennett485 2015-02-08 21:48:57

+0

糟糕!感谢您指出了这一点。 – b13rg 2015-02-08 21:51:10

+2

并且'i <= back.length()'是错误的,除非您希望在满足任何这些条件的空字符终结符上保证失败。 – WhozCraig 2015-02-08 21:51:12

回答

6

这可以写在使用std::string::find_first_not_of一行:

s.find_first_not_of("01 ") == std::string::npos 

将评估为true当且仅当所述std::strings完全由字符'0''1'' '(空间)。

+0

如果使用'std :: all_of'编写它,那么它将适用于任何序列,而不仅仅是字符串。 – 2015-02-08 22:46:01

相关问题