矢量检查不工作

时间:2013-08-17 09:14:37

标签: c++

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main(){
string previous;
string current;

vector<string> dislikes(4);
dislikes [0] = "cat1";
dislikes [1] = "cat2";
dislikes [2] = "cat3";
dislikes [3] = "cat4";

while(cin >> current){

for(int i = 0; i<dislikes.size(); ++i){
    if(current==dislikes[i]){
    cout << "BLEEP ";}

    else if(i=4);
    {cout << current << " ";}
    };


    previous = current;
};
return 0;
};

它只会在句子出现时用蜂鸣声代替猫1,但不会替换其他猫。我无法弄清楚为什么并且多年来一直盯着它。

1 个答案:

答案 0 :(得分:5)

else if(i=4);

应该是

else if(i==3)

所以这一行有三个问题:

  • 使用=代替===设置了某些内容的值,因此i将设置为4,这将结束循环。使用== 比较值。
  • 您想要比较的值是3,而不是4,因为向量只有4长,循环索引只会达到4 - 1
  • ;之后的elseelse的正文,所以其他人实际上什么都不做。