C++ line.find won';t编译,未声明行

C++ line.find won';t编译,未声明行,c++,c-strings,C++,C Strings,我是一个非常新手的程序员,我试图理解字符串的find函数。在uni,我们被告知要使用c字符串,这就是为什么我认为它不起作用的原因。当我编译时,出现了一个编译错误,没有声明line。这是我的代码: #include <iostream> #include <fstream> #include <cstring> #include <string> using namespace std; int main() { char te

我是一个非常新手的程序员,我试图理解字符串的find函数。在uni,我们被告知要使用c字符串,这就是为什么我认为它不起作用的原因。当我编译时,出现了一个编译错误,没有声明
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;
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符测试[256];
字符ID[256];

CUT< P>你试图使用C风格字符串。但是查找< <代码>是C++ >代码>字符串< /Cord>类的一个成员。如果你想使用C风格字符串,使用像C代码字符串一样的函数,如“代码> STRCMP < /C>”、“代码> StrCHR 、<代码> STRSTR 等等。假设你实际上将一些数据输入到Test< /Cord>AL中。因此,一种方法是:

char *found = strstr(test, ID);

if ( !found )
    cout << "The ID was not found.\n";
else
    cout << "The index was " << (found - test) << '\n';
char*found=strstrstr(测试,ID);
如果(!找到)

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

string test=“这是测试字符串”;
字符串::大小\类型位置;
位置=测试。查找(ID);
如果(位置!=test.npos){

您认为代码中的
是在哪里声明的吗?看,我原以为它是test,但当我用它代替test.find(ID)时这是另一个编译错误,所以我假设代码不是>测试> /CODE只是一个数组。也许你想让它成为一个代码> STD::String < /Cord>。你可以使用那些成员函数吗?你是想使用C字符串还是C++字符串?如果前者,为什么你会使用<代码>查找< /C>?,这对C字符串无效。另外,你为什么不实际使用它们呢?!如果它能像这样做的话会的。谢谢,这也很有帮助,因为这就是我在作业中需要使用它的方式:)