【发布时间】:2012-06-10 23:10:38
【问题描述】:
好的,这就是我想要完成的。
首先,下表只是我创建的一个示例,在我的作业中,我不认为其中任何一个都知道。这意味着我不知道他们会通过什么以及每个字符串的长度是多少。
我正在尝试完成一项任务是能够比较字符串的一部分
//In Array `phrase` // in array `word`
"Backdoor", 0 "mark" 3 (matches "Market")
"DVD", 1 "of" 2 (matches "Get off")
"Get off", 2 "" -1 (no match)
"Market", 3 "VD" 1 (matches "DVD")
从上面的代码中可以看出,左边是一组数组,我将它们存储在我的班级中,它们最多有 10 个单词
这是类定义。
class data
{
char phrase[10][40];
public:
int match(const char word[ ]);
};
所以我使用成员函数来访问这些私有数据。
int data::match(const char word[ ])
{
int n,
const int wordLength = strlen(word);
for (n=0 ; n <= 10; n++)
{
if (strncmp (phrase[n],word,wordLength) == 0)
{
return n;
}
}
return -1;
}
我试图使其工作的上述代码是它应该匹配,如果找到匹配项,则返回索引n,如果找不到则返回-1。
现在发生的事情总是返回10。
【问题讨论】:
-
如果您的作业允许,您可以将
std::string与std::string::find一起使用,或者在<algorithm>中使用std::includes。 -
@chris 只要我知道我的教授没有限制我们使用任何其他图书馆,但她从来没有对我们提出任何要求,而且我真的不明白使用它的方式是为什么。
-
@Jack 我希望我能实现那个。
-
@Ali 关于你之前的问题和这个问题。如果您无法获得以前的解决方案,请将代码发布到您尝试过的内容和描述以获取更多帮助。上一节课,然后把它变成两节,然后是三节,依此类推。最终你会解决你的问题,并希望对解决方案有更好的理解。谁知道你甚至可能会发现更好的方法。
-
@ali 我会为你准备答案