c ++在for循环中检查字符串是否相等

时间:2015-09-24 14:39:28

标签: c++ string for-loop equality

我是c +的新手,我正在编写与此问题无关的caesar密码程序,但我无法弄清楚为什么我的代码出错了。

char alph[] = "ABCDEFGHIJKLMANOPQRSTUVWXYZ";
string key;
cout << "Enter your key: \n";
getline(cin, key);
int numKey;
for(int j = 0; j<= 26;j++ ){
    if (alph[j] == key){
        numKey = j;
    }
}

在我的main函数中还有更多不必要的东西,但是我收到if(alph [j] == k)语句错误:错误:无效的操作数到二进制表达式('int'和'string'(又名'basic_string,allocator&gt;'))“如果有人能告诉我我做错了什么,我将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您将string与单char进行比较。

如果您只想阅读单个字符,请声明char c并使用cin >> c

阅读

答案 1 :(得分:1)

除了循环溢出,你试图比较一个字符和一个字符串,这是你的问题。 关键应该只是一个角色?如果是这样,那就把它变成一个字母,它会更好用。