如何让这个循环输出正确的东西? [关闭]
Posted
技术标签:
【中文标题】如何让这个循环输出正确的东西? [关闭]【英文标题】:How do I get this loop to output the correct things? [closed] 【发布时间】: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>
,确保您在此处发布的示例可以编译。
“错误”也是上下文相关的。这可能意味着编译错误,但也可能意味着功能错误,即代码编译但不符合我们所需的要求。
【参考方案1】:
简单的解决方案是使用std::string::find
。要在另一个给定字符串 text
中查找给定字符串 search
,请执行以下操作:
std::size_t n = text.find(search);
if (n != std::string::npos)
std::cout << "Found at position " << n << "\n";
else
std::cout << "Not found\n";
来自https://en.cppreference.com/w/cpp/string/basic_string/find
【讨论】:
嘿,非常感谢您的帮助。我试过这段代码,但它没有编译。我应该把它放在哪里?声明变量后还是我需要别的东西? 当然它不会自己编译。这是为了在另一个给定字符串text
中查找给定字符串search
。因此,您将使用看起来像这样的内容替换代码中进行搜索的部分。将 search
和 text
替换为您的变量。
哦,我的错,你显然不能在 if 语句中声明。让我编辑一下。
我将问题编辑为我的代码现在是什么,但输出现在“未找到”5 次。我显然做错了什么,但无法弄清楚。非常抱歉我的无能,非常感谢您的帮助
哦,非易失性。我做了一些改变,现在它完美地工作了!非常感谢约翰,我非常感谢您的帮助 x以上是关于如何让这个循环输出正确的东西? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
寻找 Java 代码美化器(或者可能不是美化,而是让代码更优雅的东西)[关闭]
如何在 java 中创建一些东西来根据纵横比调整图像的大小和位置? [关闭]
* * * * * * * * * * * very good * * * * * * * * * * * 这个东西用c语言得输入啥才能让它输出?