line.find 不会编译,未声明行
line.find won't compile, line is not declared
我是一个非常新手的程序员,我正在尝试了解字符串的查找函数。在大学,我们被告知要使用 C 字符串,这就是为什么我认为它不起作用的原因。编译的时候问题来了,编译报错line
was not declared。这是我的代码:
#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;
}
请帮忙,它变得非常令人沮丧,因为我需要理解这个函数才能完成我的作业:/
您正在尝试使用 C 风格的字符串。但是find
是C++的成员string
class。如果您想使用 C 风格的字符串,请使用对 C 风格的字符串进行操作的函数,例如 strcmp
、strchr
、strstr
等。
假设您实际上也将一些数据输入 test
,那么一种方法是:
char *found = strstr(test, ID);
if ( !found )
cout << "The ID was not found.\n";
else
cout << "The index was " << (found - test) << '\n';
因为find函数是一个成员函数string class,你应该声明一个字符串class的目的。我想你会这样做:
string test = "This is test string";
string::size_type position;
position = test.find(ID);
if (position != test.npos){
cout << "Found: " << position << endl;
}
else{
cout << "not found ID << endl;
}
我是一个非常新手的程序员,我正在尝试了解字符串的查找函数。在大学,我们被告知要使用 C 字符串,这就是为什么我认为它不起作用的原因。编译的时候问题来了,编译报错line
was not declared。这是我的代码:
#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;
}
请帮忙,它变得非常令人沮丧,因为我需要理解这个函数才能完成我的作业:/
您正在尝试使用 C 风格的字符串。但是find
是C++的成员string
class。如果您想使用 C 风格的字符串,请使用对 C 风格的字符串进行操作的函数,例如 strcmp
、strchr
、strstr
等。
假设您实际上也将一些数据输入 test
,那么一种方法是:
char *found = strstr(test, ID);
if ( !found )
cout << "The ID was not found.\n";
else
cout << "The index was " << (found - test) << '\n';
因为find函数是一个成员函数string class,你应该声明一个字符串class的目的。我想你会这样做:
string test = "This is test string";
string::size_type position;
position = test.find(ID);
if (position != test.npos){
cout << "Found: " << position << endl;
}
else{
cout << "not found ID << endl;
}