对于家庭作业项目,我需要从数组中找到一个字符串。现在我一直在努力让这个功能在过去的一个小时里工作,我只是让自己更加困惑。我很确定 find() 返回它找到您的值的地址。我在这里做错了什么!?
下面的代码:
类成员方法:
bool ArrayStorage::stdExists(string word)
{
if (arrayOfWords != NULL)
{
size_t findResult = find(&arrayOfWords[0], &arrayOfWords[arrayLength], word);
std::cout << "word found at: " << findResult << '\n';
return true;
}
return false;
}
(字符串字)来自主要:
string find = "pixel";
声明数组的成员方法:
void ArrayStorage::read(ifstream &fin1)
{
int index = 0;
int arrayLength = 0;
string firstWord;
if(fin1.is_open())
{
fin1 >> firstWord;
fin1 >> arrayLength;
setArrayLength(arrayLength);
arrayOfWords = new string[arrayLength];
while(!fin1.eof())
{
fin1 >> arrayOfWords[index];
index++;
}
}
}
头文件:
class ArrayStorage
{
private:
string* arrayOfWords;
int arrayLength;
int value;
public:
void read(ifstream &fin1); //reads data from a file
void write(ofstream &out1); //output data to an output stream(ostream)
bool exists(string word); //return true or false depending whether or not a given word exists
bool stdExists(string word); //^^ use either std::count() or std::find() inside here
//setters
void setArrayLength(int value);
//getters
int getArrayLength();
ArrayStorage::ArrayStorage() : arrayOfWords(NULL)
{
}
ArrayStorage::~ArrayStorage()
{
if (arrayOfWords)
delete []arrayOfWords;
}
};