2017-08-29 289 views
-7

我正在C++中编写一个蛮力子字符串搜索。下面提供的是我的代码。C3867错误在Visual Studio中,不知道这是什么意思

int bruteSearch(string a, string b) { 
    int i, j, n = a.length, m = b.length; 
    for (i = 0; i < (n - m); i++) { 
     j = 0; 
     while (j < m && b[i + j] == a[j]) { 
      j++; 
     } 
     if (j == m) return i; 
    } 
    return -1; 
} 
void main() 
{ 
    string a = "Awesome Example"; 
    string b = "Exam"; 
    cout << bruteSearch(a, b) << endl; 

} 

试图建立这个产生与我使用的bruteSearch功能来声明整数行一个错误,说... ...“错误C3867“的std :: basic_string的,性病::分配器> :: length':非标准语法;使用'&'创建指向成员StringSearch的指针“

我不知道这是什么意思。任何帮助?谢谢!

+0

使用'a.length()'而不是'a.length' ...'length()'是一个函数,而不是一个属性。 –

+3

提问后请勿修复代码。它使答案和意见毫无意义。 –

回答

1

string::length是一个函数,所以调用它。

int i, j, n = a.length(), m = b.length();