【发布时间】:2020-03-23 23:02:04
【问题描述】:
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
int main() {
std::string text = "dnoiwnenfsldhatnjffat";
std::string stuff[] = { "hat", "fat", "hoe"};
for (auto item : stuff) {
std::size_t n = item.find(text);
if (n != std::string::npos)
{
std::cout << "Found at position " << n << "\n";
}
else
{
std::cout << "Not found\n";
}
}
}
我想要它做的是得到输出
hat found
cat found
hoe not found
好的,已回答。感谢所有的帮助。这是从字符串中的数组中查找某些单词。
【问题讨论】:
-
修改您显示的代码,以便没有文件操作,并且您的
text和animals是硬编码的。这将使我们更容易看到操作。text = "bat ant robin"; animals = {"bat", "ant", "robin", "penguin", "cat", "vulture"};或任何您的实际输入。然后让我们知道您观察到的输出是什么以及您期望的输出是什么。这被称为minimal reproducible example。 -
当您使用调试器运行程序时,您看到了什么?这就是调试器的用途。如果您不知道如何使用调试器,这是一个学习如何使用调试器一次运行一行的好机会,监控所有变量及其值的变化,并分析程序的逻辑执行流程。知道如何使用调试器是每个 C++ 开发人员必备的技能,没有例外。在调试器的帮助下,您应该能够快速找到此程序以及您编写的所有未来程序中的所有错误,而无需向任何人寻求帮助。
-
嘿,谢谢你的建议,是的,我明白,但这是我第一次使用 c++。我在尝试做我想做的事情时没有遇到错误,它只是运行了,但如果这有意义的话,我无法让它真正做我想做的事情?它运行并且程序没有识别任何错误,但我无法让它输出数组中的哪些单词不在字符串中
-
这不应该按原样编译。您有两个名为
animals的变量。您可以使用此符号std::vector<std::string> animals = {"dog", "cat", "cow", "pig", "fox"};设置std::vector<std::string>,确保您在此处发布的示例可以编译。 -
“错误”也是上下文相关的。这可能意味着编译错误,但也可能意味着功能错误,即代码编译但不符合我们所需的要求。