C++ strcmp从‘;char’;至‘;常量字符*’;

C++ strcmp从‘;char’;至‘;常量字符*’;,c++,char,strcmp,C++,Char,Strcmp,我对strcmp有点问题 这是我的密码 while (strcmp("m",wood) !=0 || strcmp("j",wood) !=0 || strcmp("o",wood) !=0){ cout << "(m for mahogany, o for oak, or p for pine): "; cin >> wood; } wood的类型为char:它必须是字符串,即char*,才能在strcmp()中使用 改为: while ('m' != woo

我对strcmp有点问题

这是我的密码

while (strcmp("m",wood) !=0 || strcmp("j",wood) !=0 || strcmp("o",wood) !=0){
    cout << "(m for mahogany, o for oak, or p for pine): ";
cin >> wood;
}

wood
的类型为
char
:它必须是字符串,即
char*
,才能在
strcmp()中使用

改为:

while ('m' != wood && 'j' != wood && 'o' != wood)

错误显示第二个参数有问题。它应该是
常量字符*

strcmp的签名为:


int strcmp(常量字符*str1,常量字符*str2)

如果您想比较两个
字符
只需使用
=
=
,如果要比较两个字符串(
char*
),请使用
strcmp
。将单个字符与字符串进行比较是没有任何意义的,这似乎是您正在做的。wood的数据类型是什么。?这个答案是正确的,@Daniel D C,再加上我在Q下的评论,以便更好地理解。@Danield C我想再看看答案:)谢谢大家!感谢您的快速响应!字符比较仅使用“==”和带有单个字符的包含“'”
while ('m' != wood && 'j' != wood && 'o' != wood)