C++ strcmp从'char'转换为'const char*'

Dan*_*ore 2 c++ char strcmp

你好noob程序员在这里遇到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;
}
Run Code Online (Sandbox Code Playgroud)

这是我的错误.

  • dining.cpp:在成员函数'void DiningSet :: woodType()'中:
  • dining.cpp:76:24:错误:从'char'无效转换为'const char*'[-fpermissive] /usr/include/string.h:143:12:错误:初始化'int strcmp(const)的参数2 char*,const char*)'[-fpermissive]
  • dining.cpp:76:48:错误:从'char'无效转换为'const char*'[-fpermissive] /usr/include/string.h:143:12:错误:初始化'int strcmp(const)的参数2 char*,const char*)'[-fpermissive]
  • dining.cpp:76:72:错误:从'char'无效转换为'const char*'[-fpermissive] /usr/include/string.h:143:12:错误:初始化'int strcmp(const)的参数2 char*,const char*)'[-fpermissive]

hmj*_*mjd 12

wood是类型char:它必须是一个字符串,即,char*用于strcmp().

改成:

while ('m' != wood && 'j' != wood && 'o' != wood)
Run Code Online (Sandbox Code Playgroud)