Noob问题:尝试检查向量中的特定单词

时间:2019-07-11 22:11:45

标签: c++ c++11 c++14

我是菜鸟,正在读这本书的第4章,我无法正确回答此作业。

下面列出了对我有意义但不起作用的代码。

这是作业:

编写一个程序,使您不喜欢的单词“消失”;也就是说,您使用cin读取单词,然后在cout上再次打印它们。如果您定义的单词中有一个, 写出BLEEP而不是那个词。从一个“不喜欢的词”开始,例如 不喜欢的字符串=“花椰菜”; 在这种情况下,再添加一些。

我们将非常感谢您的帮助,我甚至可能会向您发送一些cookie。

int main() {

vector<string> words;

for (string temp; cin >> temp; )

    words.push_back(temp);

string disliked = "broccoli";

for (int i = 0; i < words.size(); ++i)

    if (words[i] == disliked ||  disliked=="Bleep!")

        cout << words[i] << "\n";

即使我输入了几个单词,我反讽的结果也只是“西兰花”而已。

2 个答案:

答案 0 :(得分:4)

之所以只打印“西兰花”是因为这里的这些行:

type Mutation {
  createClist(input: CreateClistInput! @spread): Clist @create
}

input CreateClistInput {
    name: String!
    description: String
    starred: Boolean
    user: CreateUserRelation!
    ctags: CreateCtagRelation
}

input CreateUserRelation {
  connect: ID!
}

input CreateCtagRelation {
  create: [CreateCtagInput!]
  connect: [ID!]
  sync: [ID!]
}

input CreateCtagInput {
  name: String!
}


这些行实质上意味着“如果单词等于西兰花,则打印出该单词”。支票的第二部分 if (words[i] == disliked || disliked=="Bleep!") cout << words[i] << "\n"; 始终为假(因为disliked == "Bleep!"始终为“西兰花”),因此它不起作用。

我们可以解决以下问题:

disliked

在这里,逻辑是“如果不喜欢该单词,则打印出“ Bleep”,否则,打印出该单词。”

如果您还有其他问题,我们很乐意为您解答,任何cookie都将不胜感激! :)

答案 1 :(得分:1)

贾斯汀说的是真的。调试器可以通过逐行跟踪发生的事情(您的程序足够执行此操作)来向您确切显示发生的事情。

但是我会回答。问题出在这里

if (words[i] == disliked ||  disliked=="Bleep!")

您测试该单词是否为不受欢迎的单词,然后显示出来。是的,只有西兰花。顺便说一句,您不完全按照练习的话说,因为当您不喜欢这个词时,您应该发出哔哔声,如果不喜欢,您应该发出单词。 (根据我的理解)。

希望有帮助。