line.find不会编译,行未声明

时间:2015-06-08 04:08:40

标签: c++ c-strings

我是一个非常新手的程序员,我正在尝试理解字符串的查找函数。在uni,我们被告知使用c-strings,这就是为什么我认为它不起作用。当我编译时出现问题,存在未声明line的编译错误。这是我的代码:

 #include <iostream>
 #include <fstream>
 #include <cstring>
 #include <string>

 using namespace std;

int main()
{
    char test[256];
    char ID[256];


    cout << "\nenter ID: ";

    cin.getline(ID, 256);

    int index = line.find(ID);

    cout << index << endl;

    return 0;
}

请帮助,因为我需要理解这个功能来完成我的任务,所以真的很令人沮丧:/

3 个答案:

答案 0 :(得分:1)

您正在尝试使用C风格的字符串。但是find是C ++ string类的成员。如果要使用C风格的字符串,请使用对C样式字符串进行操作的函数,如strcmpstrchrstrstr等。

答案 1 :(得分:1)

假设您实际上也将一些数据输入test,那么一种方法是:

char *found = strstr(test, ID);

if ( !found )
    cout << "The ID was not found.\n";
else
    cout << "The index was " << (found - test) << '\n';

答案 2 :(得分:0)

因为找到功能成员函数 string 类,您应该声明一个字符串类的对象。我想你会这样做:

&#13;
&#13;
LOAD CSV WITH HEADERS FROM 'asdfjkl;' AS line
MERGE (u:User {user: line.user })
MERGE (v:Video {video: line.video})
MERGE (u)-[:VIEW]->(v) 
RETURN u, v
&#13;
&#13;
&#13;