好吧,这是我的代码:检查,如果用户键入阵列辅音
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
char arr[] = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'};
int y = 0;
string x;
const char* z;
int main()
{
cin >> x;
z = x.c_str();
if (x.length() == 1)
{
for (y == 0; y <= 20; y++)
{
if (*z == arr[y])
{
cout << "Consonant" << endl;
break;
}
else
{
cout << "Not a consonant" << endl;
break;
}
}
}
}
所以这应该告诉我,如果我输入的字符是一个辅音或没有,但问题是它告诉我它的一个辅音只有当我输入“b”时,如果我输入该数组中的其他元素,它会告诉我“不是辅音”。我不知道如何解决这个问题,我认为问题是,如果(* z == arr [y]),例如“c”是数组中的第二个元素,因为y = 0,程序会检查它是否是“b”,然后y = 1并且应该检查“c”,但程序检查“b”,然后进入“else”并告诉我它不是辅音,那么程序结束。
我对如何使这项工作没有想法。
'为(Y == 0; Y <= 20; Y ++)'? 'y == 0'好像是一个错字? –
我还建议您阅读Eric Lippert的[如何调试小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/),并学习如何使用调试器逐行执行程序。因为如果你这样做的问题应该变得非常明显。 –
我不太明白你在说什么,如果你在谈论“int y = 0;”,如果它只是“int y;”,我会遇到同样的问题。 – petxd