为什么我的或声明不起作用,C++?

rec*_*gle 3 c++

我正在尝试创建一个函数,用字符串中的空格替换0,1或2.我通过迭代字符串并比较每个字符来实现它.

如果我比较str_in [i] =='0',我的函数将起作用,但如果我添加or语句则不返回任何内容.

片段:

string omit_num( string ) {
    int i ;

    str_len = str_in.length();
    str_out = "" ; 

    for( i = 0 ; i < str_len ; i ++ ){
         cout << str_in[i] << endl; 
         if ( str_in[i] == '0' || '1' || '2') 
            app = " " ;
         else
             app = str_in[i];
         str_out.append(app) ; 
    }
    return str_out; 

}
Run Code Online (Sandbox Code Playgroud)

rav*_*int 11

你需要

if ( str_in[i] == '0' ||  str_in[i] =='1' ||  str_in[i] =='2') 
Run Code Online (Sandbox Code Playgroud)


Bru*_*ong 6

你每次都必须重复测试,'1','2'本身基本上是小的整数并且评估为真.它应该如下所示:

if (str_in[i] == '0' || str_in[i] == '1' || str_in[i] == '2')
Run Code Online (Sandbox Code Playgroud)