查找字符串中的子字符串返回-1,尽管子字符串可用

时间:2011-01-11 11:11:23

标签: c++ string

我还有一个关于以下内容的C ++事物:

l 是一个代码行(string.c_str())>成为行
pos 是从哪里开始搜索的位置 s 是一个字符串(string.c_str()),用于查找>成为命令

一切正常,直到命令为“-1”。在这种情况下,虽然行包含字符串,但未找到字符串“-1”。 我错过了一些明显的东西吗?

代码:

bool Converter::commandAvailable(const char* l, int pos, const char* s) {

string line = l;
string command = s;
int x = line.find(command, pos);
if (x != -1) {
  return true;
}
return false;
}

提前致谢!

1 个答案:

答案 0 :(得分:2)

这可以帮助您找到问题:

bool Converter::commandAvailable(const char* l, int pos, const char* s) 
{
    string line = l;
    string command = s;
    std::cout << "INPUT" << std::endl;
    std::cout << "LINE:  " << line << std::endl;
    std::cout << "CMD:   " << command << std::endl;
    std::cout << "START:  " << pos << std::endl << std::endl;

    std::size_t x = line.find(command, pos);

    std::cout << "OUTPUT:  " << x << std::endl;
    if (x != std::string::npos) 
    {
        return true;
    }
    return false;
}