2017-08-29 101 views
-7

私はC++で無差別な部分文字列検索を書いています。以下は私のコードです。 ... を言って、これは私がbruteSearch機能に整数を宣言するために使用するラインとの誤差を生じ構築しようとVisual StudioでC3867エラー、これが何を意味するかわからない

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; 

} 

... "エラーC3867「のstd ::のbasic_string、STD ::アロケータ> :: length ':非標準的な構文;メンバへのポインタを作成するには' & 'を使用してください。 "

これはどういう意味かわかりません。どんな助け?ありがとう!

+0

'a.length()'ではなく 'a.length' ...' length() 'は関数でありプロパティではありません。 –

+3

質問をした後にコードを修正しないでください。それは答えとコメントを無意味にします。 –

答えて

1

string::lengthは関数なので、それを呼び出してください。

int i, j, n = a.length(), m = b.length(); 
関連する問題