布尔函数,用于检查字符串是否包含左尖括号“<”在C ++中

时间:2014-10-22 16:08:51

标签: c++ string iteration

bool isLangle(string);
int main()
{
    string urstr;
    cout <<"enter any str "<<endl;
    cin>>urstr;
    cout<<isLangle(urstr)<<endl;
    return 0;
}

bool isLangle(string str){
    for (int i=0; i<str.length(); i++)
    {
        if (str[i] == '<')
            return true;
        else
            return false;
    }
}

/ *我正在迭代一个html行,但该函数只检查第一个char并返回。我希望当我输入&#34;白银&lt;&#34;或任何其他包含左角括号的字符串
* /

2 个答案:

答案 0 :(得分:4)

return false;移到循环之外:

bool isLangle(string str) {
    for (int i=0; i<str.length(); i++)
    {
        if (str[i] == '<')
            return true;
    }
    return false;
}

您也可以查看标准的string::find函数:

bool isLangle(string str) { // or, better, const string&, see @Cyber's answer
    size_t pos = str.find('<');
    return (pos != string::npos);
}

答案 1 :(得分:3)

您可以使用string::find搜索该字符。如果未找到,则会返回string::npos

bool isLangle(std::string const& str)
{
    std::size_t found = str.find("<");
    return found != std::string::npos;
}