比较两个std :: strings以查看它们是否与c ++匹配

时间:2019-02-14 15:05:53

标签: c++ mfc

我正在尝试比较两个std :: strings以查看字符串是否在第二个字符串中。但是,当我使用“ 8eN”执行此操作时,我将无法使用,也不会返回正确的颜色-相反,当我使用“ 8e”时,它将起作用,因此我不确定此处会发生什么,非常感谢!

使用Microsoft Visual c ++ 6.0(旧版应用程序:()

这是我的代码

int CTcborder2::ColorOfFill()
{
    CString csGrade = m_border->csPuc; // this will be "8eN"

    std::string s((LPCTSTR)csGrade); //convert to std::string
    std::string t = "8eN"; // see if this string is in std::string s

    if(strstr(s.c_str(), t.c_str())) //only works with "8e" when I use "8eN" it doesn't return the correctly. 
        return COLOR;

}

1 个答案:

答案 0 :(得分:0)

不必使用C ++中的C函数,只需使用

std::string::findstd::search
int CTcborder2::ColorOfFill()
{
    CString csGrade = m_border->csPuc; // this will be "8eN"

    std::string s((LPCTSTR)csGrade); //convert to std::string
    std::string t = "8eN"; // see if this string is in std::string s

    if(s.find(t) != std::string::npos)
        return COLOR;

}